0分求调
查看原帖
0分求调
1213771
liu_mingxu楼主2024/11/23 11:17
#include<bits/stdc++.h>
using namespace std;
inline void read(int& a){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') w = -1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		s=s*10+ch-'0';
		ch=getchar();
	}
	a=s*w;
}
struct stu{
	int nu;
	long long te,fe;
}nd[1000001];
int n,p;
int main(){
	read(n);
	read(p);
	for(int i=1;i<=n;i++)
	read(nd[i].nu);
	long long su=0,maxx=nd[1].nu;
	for(int i=1;i<=n;i++){
		if(su<0)su=0;
		su+=nd[i].nu;
		maxx=max(maxx,su);
		nd[i].te=maxx;
	}
	nd[1].fe=nd[1].te;
	maxx=nd[1].te+nd[1].fe;
	long long maxn=nd[1].fe;
	for(int i=2;i<=n;i++){
		nd[i].fe=maxx;
		maxx=max(maxx,nd[i].te+nd[i].fe);
		maxn=max(maxn,nd[i].fe);
	}
	cout<<maxn%p;
	return 0;
}
2024/11/23 11:17
加载中...