WA on #9 and #11 评测记录
#include <bits/stdc++.h>
#define int long long
#define llint __int128
using namespace std;
int a[1000010];
llint s[1000010], sp[1000010], sc[1000010];
signed main() {
ios::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
int n, p;
cin >> n >> p;
for (int i = 1; i <= n; i ++)
cin >> a[i], s[i] = s[i - 1] + a[i];
llint mins = 0;
sc[1] = sp[1] = s[1];
for (int i = 2; i <= n; i ++) {
sp[i] = max(sp[i - 1], s[i] - mins);
mins = min(s[i], mins);
}
sc[2] = sp[1] + sc[1];
for (int i = 3; i <= n; i ++)
sc[i] = sc[i - 1] + max((llint)0, sp[i - 1]);
llint ans = sc[1];
for (int i = 2; i <= n; i ++)
ans = max(ans, sc[i]);
cout << (int)(ans % p);
return 0;
}
__int128 和 long long 已开