#include<bits/stdc++.h>
using namespace std;
long long dp[1000005], t[1000005], a[1000005], ma=LONG_LONG_MIN, f[1000005];
int main(){
long long n, p;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i];
dp[i]=max(dp[i-1]+a[i], a[i]);
ma=max(ma, dp[i]);
t[i]=ma%p;
}
f[1]=t[1];
ma=LONG_LONG_MIN;
long long ga=t[1];
for(int i=2;i<=n;i++){
ma=max(ma, f[i-1]+t[i-1]);
f[i]=ma;
}
for(int i=1;i<=n;i++){
ga=max(ga, f[i])%p;
}
cout<<ga%p;
return 0;
}
https://www.luogu.com.cn/problem/P1982#submit
https://www.luogu.com.cn/record/92941520
关于做对了但又没完全做对这逝