#include<bits/stdc++.h>
using namespace std;
#define lll long long
lll read(){
lll sign=1,num=0;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') sign=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
num=num*10+ch-'0';
ch=getchar();
}
return num*sign;
}
void write(lll x){
if(x<0){
putchar('-');
x=~x+1; // 相当于 x=-x
}
if(x>9) write(x/10);
putchar(x%10+'0');
}
lll a[1000005],b[1000005],c[1000005];
int main()
{
lll n,m;
n = read(),m = read();
for(int i = 1;i<=n;i++)
{
a[i] = read();
}
for(int i = 1;i<=n;i++)
{
b[i] = max(b[i-1]+a[i],a[i]);
}
c[1] = b[1];
lll mx = c[1];
int maxxx = 1;
lll maxx = c[1]*2;
for(int i = 2;i<=n;i++)
{
c[i] = maxx;
if(c[i]+b[maxxx]>maxx)
{
maxx = c[i]+b[maxxx];
maxxx = i;
}
maxx = max(c[i]+b[i],maxx);
mx = max(mx,c[i]);
}
write(mx%m);
return 0;
}
十分求助!!
代码情况:
1:
AWWWWWWWWW
2:
AAAAA