求调
查看原帖
求调
738882
OIer_dcy__AK_IOI楼主2023/12/17 10:07

第11个点WA了

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define int long long
const int MIN=-0x3f3f3f3f3f3f3f3f;
const int N=1e6+10; 
int n,p;
int a[N],b[N],c[N],sum[N];
signed main(){
	scanf("%lld%lld",&n,&p);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	sum[1]=b[1]=a[1];
	for(int i=2;i<=n;i++){
		sum[i]=max(sum[i-1]+a[i],a[i]);
		b[i]=max(b[i-1],sum[i]);
	}
	c[1]=b[1];
	c[2]=a[1]+b[1];
	for(int i=3;i<=n;i++){
		if(b[i-1]<0){
			c[i]=c[i-1];
		}else{
			c[i]=(c[i-1]+b[i-1])%p;
		}
	}
	if(c[n]>=0){
		printf("%lld\n",c[n]%p);
	}else{
		printf("%lld\n",c[1]%p);
	}
	return 0;
}
2023/12/17 10:07
加载中...