?(没看到)
by rwhy @ 2023-12-16 00:04:25
@[brave_gentleman](/user/372326) 想帮你,可惜我不会。。
by jeffstart @ 2023-12-16 00:04:55
```
#include<bits/stdc++.h>
using namespace std;
__int128 n,ans,a[1145140],f[1145140],b[1145140],c[1145140],s[1145140],mod;
__int128 fcin() {
__int128 sto=0,momomo=1;
char orz=getchar();
while(orz>'9'||orz<'0') {
if(orz=='-') momomo=-1;
orz=getchar();
}
while(orz>='0'&&orz<='9') sto=sto*10+orz-'0',orz=getchar();
return sto*momomo;
}
void fcout(__int128 tt) {
if(tt<0) {
putchar('-');
fcout(-tt);
return;
}
char ttt=tt%10+'0';
if(tt>=10) fcout(tt/10);
putchar(ttt);
}
__int128 maxx(__int128 x,__int128 y){return x>y ? x : y;}
__int128 minn(__int128 x,__int128 y){return x<y ? x : y;}
inline __int128 abss(__int128 x) {
if(x>=0)return x;
return -x;
}
int main() {
n=fcin(),mod=fcin();
for(__int128 i=1;i<=n;i++) a[i]=fcin();
b[1]=s[1]=f[1]=a[1];
for(__int128 i=2;i<=n;++i) {
f[i]=maxx(f[i-1]+a[i],a[i]);
b[i]=maxx(b[i-1],f[i]);
}
c[1]=b[1];
s[1]=b[1]+c[1];
ans=c[1];
for(__int128 i=2;i<=n;i++) {
c[i]=s[i-1];
s[i]=maxx(s[i-1],c[i]+b[i]);
ans=maxx(ans,c[i]);
}
if(ans>=0) ans=ans%mod;
else ans=-(abss(ans)%mod);
fcout(ans);
return 0;
}
```
我朋友的代码
by rwhy @ 2023-12-16 00:05:51
@[brave_gentleman](/user/372326)
by rwhy @ 2023-12-16 00:06:29
@[rwhy](/user/1001535) 谢
by brave_gentleman @ 2023-12-16 00:23:08