80,题解看不懂
查看原帖
80,题解看不懂
422996
HeCao2008楼主2022/7/24 21:48
#include<bits/stdc++.h>
using namespace std;
struct node{
	int shu;
	long long te;
	long long fen;
}a[1000001];
int main(){
	int n,p;
	cin>>n>>p;
	for(int i=1;i<=n;i++)scanf("%d",&a[i].shu);
	long long now=0,maxx=a[1].shu;
	for(int i=1;i<=n;i++){
		if(now<0)now=0;
		now+=a[i].shu;
		maxx=max(maxx,now);
		a[i].te=maxx;
	}
	a[1].fen=a[1].te;
	long long maxn=a[1].te+a[1].fen;
	long long ans=a[1].fen;
	for(int i=2;i<=n;i++){
		a[i].fen=maxn;
		maxn=max(maxn,1ll*(a[i].te+a[i].fen));
		ans=max(ans,a[i].fen);
	} 
	cout<<ans%p<<endl;
	return 0;
}
2022/7/24 21:48
加载中...