求助
查看原帖
求助
298692
Rn_Lamsuly楼主2020/10/31 21:18

AZ代码过不了

#include<bits/stdc++.h>
using namespace std;
long long sum[1000007],score[1000007],num[1000007],f[1000007],zero;
int main()
{
	//freopen("number.in","r",stdin);
	//freopen("number.out","w",stdout);
	long long n,p;
	scanf("%ld%ld",&n,&p);
	for(register int i=1;i<=n;++i)scanf("%d",&num[i]);
	f[1]=sum[1]=score[1];
	for(register int i=2;i<=n;++i)
	{
		f[i]=max(num[i],num[i]+f[i-1]); 
  		sum[i]=max(sum[i-1],f[i]);
	}
	score[1]=sum[1];
	score[2]=score[1]+sum[1];
	for(register int i=3;i<=n;++i)
	{
		score[i]+=max(sum[i-1],zero)+score[i-1];
		score[i]%=p;
	}
	
	/*for(register int i=1;i<=n;++i)
	{
		cout<<sum[i]<<' ';
	}
	cout<<endl;
	for(register int i=1;i<=n;++i)
	{
		cout<<score[i]<<' ';
	}
	cout<<endl*/;
	long long maxx=score[1];
    maxx=max(score[n],zero);
	printf("%ld",(abs(maxx)/maxx)*abs(maxx)%p);
	return 0;
}
2020/10/31 21:18
加载中...