记录
代码:
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
__int128 a[1000001],b[1000001],c[1000001];
__int128 input()
{
__int128 x=0;
char c;
bool flag=0;
c=getchar();
while(c<'0' || c>'9')
{
if(c=='-')
{
flag=1;
}
c=getchar();
}
while(c>='0' && c<='9')
{
x=x*10+(c-'0');
c=getchar();
}
return (flag?-x:x);
}
void print(__int128 x)
{
int t[101]={0},k=0;
if(x<0)
{
putchar('-');
x=-x;
}
while(x)
{
t[++k]=x%10;
x/=10;
}
if(k==0)
{
k++;
}
for(int i=k;i>=1;i--)
{
putchar(t[i]+'0');
}
}
int main()
{
//ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
__int128 n=input(),p=input(),t=-INT_MAX;
b[0]=-INT_MAX;
for(__int128 i=1;i<=n;i++)
{
a[i]=input();
}
for(__int128 i=1;i<=n;i++)
{
b[i]=max(b[i-1]+a[i],a[i]);
t=max(t,b[i]);
c[i]=t;
}
__int128 ans=c[1];
for(__int128 i=1;i<n;i++)
{
ans+=c[i];
}
print(max(ans,c[1])%p);
putchar('\n');
}
谢谢大佬!