100分求助
查看原帖
100分求助
761336
zengzixvan楼主2023/8/17 18:15
#include<bits/stdc++.h>
using namespace std;
long long n,p,x,ans=-1e9,mx=-1e9,maxs=-1e9,f[1000001],s[1000001],a[1000001];
long long read()
{
	long long x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return f*x; 
}
int main()
{
	memset(a,-0x7f,sizeof a);
	memset(s,-0x7f,sizeof s);
	n=read();
	p=read();
	for(int i=1;i<=n;++i)
	{
		x=read();
		a[i]=a[i-1]+x>x?a[i-1]+x:x;
		mx=mx>a[i]?mx:a[i];
		f[i]=mx%p;
	}
	s[1]=f[1];
	ans=s[1];
	for(int i=2;i<=n;++i)
	{
		maxs=s[i-1]+f[i-1]>maxs?s[i-1]+f[i-1]:maxs;
		s[i]=maxs;
		ans=ans>s[i]?ans:s[i];
	}
	if(ans<0) printf("-");
	printf("%lld",abs(ans)%p);
	return 0;
}

Subtask1 第1个点WA了,各位神佬帮忙检查一下代码,谢谢Orz

2023/8/17 18:15
加载中...