AZ代码过不了
#include<bits/stdc++.h>
using namespace std;
long long sum[1000007],score[1000007],num[1000007],f[1000007],zero;
int main()
{
//freopen("number.in","r",stdin);
//freopen("number.out","w",stdout);
long long n,p;
scanf("%ld%ld",&n,&p);
for(register int i=1;i<=n;++i)scanf("%d",&num[i]);
f[1]=sum[1]=score[1];
for(register int i=2;i<=n;++i)
{
f[i]=max(num[i],num[i]+f[i-1]);
sum[i]=max(sum[i-1],f[i]);
}
score[1]=sum[1];
score[2]=score[1]+sum[1];
for(register int i=3;i<=n;++i)
{
score[i]+=max(sum[i-1],zero)+score[i-1];
score[i]%=p;
}
/*for(register int i=1;i<=n;++i)
{
cout<<sum[i]<<' ';
}
cout<<endl;
for(register int i=1;i<=n;++i)
{
cout<<score[i]<<' ';
}
cout<<endl*/;
long long maxx=score[1];
maxx=max(score[n],zero);
printf("%ld",(abs(maxx)/maxx)*abs(maxx)%p);
return 0;
}