80分,我怀疑爆long long了
查看原帖
80分,我怀疑爆long long了
349824
WsW_花逝爆零人楼主2020/8/26 15:06
#include<bits/stdc++.h>
using namespace std;
long long n,p,sum=0,ans=-9223372036854775800,Max;
long long a[1000001];
long long fs[1000001];
long long tz[1000001];
long long tf[1000001];
int main(){
	scanf("%lld%lld",&n,&p);
	bool f=0;
	for(long long i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		sum+=a[i];
		if(sum>ans) ans=sum;
		tz[i]=ans;
		if(sum<0)sum=0;
	}
	fs[1]=tz[1];
	tf[1]=fs[1]+tz[1];
	Max=fs[1];
	sum=0;
	ans=tf[1];
	for(long long i=2;i<=n;i++){
		fs[i]=ans;
		tf[i]=fs[i]+tz[i];
		if(tf[i]>ans)ans=tf[i];
		if(fs[i]>Max)Max=fs[i];
	}
	if(Max<0){
		printf("-");
		Max=0-Max;
	}
	Max%=p;
	printf("%lld",Max);
	return 0;
}
2020/8/26 15:06
加载中...