求助!!!10分(4个TLE,5个WA)
查看原帖
求助!!!10分(4个TLE,5个WA)
224045
包包楼主2021/8/1 10:02
#include<iostream> 
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,p;
long long a[1000010],b[1000010],c[1000010],k,ans;
int main()
{
	cin>>n>>p;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	b[1]=a[1];
	for(int i=2;i<=n;i++)
	{
		k=0;
		for(int j=1;j<=i;j++)
		{
			if(a[j]>0)	
			{
				b[i]+=a[j];
				k++;
			} 
		}
		if(k==0)
		{
			b[i]=a[1];
			for(int j=2;j<=i;j++)
				b[i]=max(b[i],a[j]);
		}
	}
	c[1]=b[1];
	ans=c[1];
	for(int i=2;i<=n;i++)
	{
		c[i]=c[1]+b[1]; 
		for(int j=2;j<i;j++)
			c[i]=max(c[i],c[j]+b[j]);
		ans=max(ans,c[i]);
	}
	if(ans>0) ans%=p;
	else 	  ans=-(-ans%p);
	cout<<ans;
}
2021/8/1 10:02
加载中...