80分,求调!!!求大佬!
查看原帖
80分,求调!!!求大佬!
1015008
yongshao楼主2024/7/13 20:22
#include<iostream>
using namespace std;
long int a[1000050],b[1000050],c[1000050];
int main()
{
	long int n,p;
	cin>>n>>p;
	for(long int i=1;i<=n;i++)cin>>a[i];
	b[1]=a[1];
	long int maxx=a[1],temp=a[1];
	for(long int i=2;i<=n;i++)
	{
		temp+=a[i];
		maxx=max(maxx,temp);
		if(temp<0)temp=0;
		b[i]=maxx%p;
	}
	c[1]=b[1];
	maxx=c[1]+b[1];
	long int ans=c[1];
	for(long int i=2;i<=n;i++)
	{
		c[i]=maxx;
		maxx=max(maxx,c[i]+b[i])%p;
		ans=max(ans,c[i])%p;
	}
//	for(long int i=1;i<=n;i++)cout<<a[i]<<" "<<b[i]<<" "<<c[i]<<"\n";
	cout<<ans%p;
}
/*
5 981 
-409 -401 97 -96 -301 
-409
*/
/*
10 711 
907 -565 310 643 -111 -180 -426 -758 -901 253 
22
*/    

2024/7/13 20:22
加载中...