80分求助
查看原帖
80分求助
77615
OIerAlbedo楼主2021/3/15 09:19
#include<bits/stdc++.h>
using namespace std;
long long a[2000000],b[2000000],c[2000000],d[2000000],e[2000000],f[2000000];
long long ppp,n,p,i,ans,sum,summ;
bool flag,flag1;
int main()
{
	//freopen("number.in","r",stdin);
	//freopen("number.out","w",stdout);
	cin>>n>>p;
	for (i=1;i<=n;i++) cin>>a[i];
	for (i=1;i<=n;i++) f[i]=-2000000000;
	ppp=-10000000000;
	for (i=1;i<=n;i++)
	     {
	     	summ+=a[i];
	     	if (summ>ppp) ppp=summ;
	     	if (summ<0) summ=0;
			c[i]=ppp;
		 }
	b[1]=c[1];ans=b[1]+c[1];sum=b[1];
	for (i=2;i<=n;i++)
	      {
	      	b[i]=ans;
	      	if (b[i]>sum) sum=b[i];
	      	if (b[i]+c[i]>ans) ans=b[i]+c[i];
		  }
	/*if (sum<0)
	    {
	    	sum=-sum;
	    	sum%=p;
	    	if (sum!=0) cout<<"-"<<sum<<endl;
	    	else cout<<0<<endl;
		}  */
	cout<<(sum % p)<<endl;
	return 0;
}

2021/3/15 09:19
加载中...