记录编号 436693 评测结果 AAAAAAAAAA
题目名称 [NOIP 2013PJ]小朋友的数字 最终得分 100
用户昵称 Gravatar+1s 是否通过 通过
代码语言 C++ 运行时间 0.452 s
提交时间 2017-08-12 13:29:56 内存使用 30.83 MiB
显示代码纯文本
#include<fstream>
#include<cmath>
#define OO 1000000000
using namespace std;
ifstream fin("number2013.in");
ofstream fout("number2013.out");
long long n,nu[1000010],p;
long long spc[1000010],sc[1000010],tsc[1000010];
long long ma(long long a,long long b)
{
	return a>b?a:b;
}
int main()
{
	fin>>n>>p;
	for(int i=1;i<=n;i++)
	{
		fin>>nu[i];
	}
	long long t=nu[1];
	spc[1]=nu[1];
	tsc[1]=spc[1];
	long long l=nu[1];
	bool f=false;
	for(int i=2;i<=n;i++)
	{
		l=ma(0,l)+nu[i];
		t=ma(t,l);
		spc[i]=t;
	}
	tsc[1]=spc[1];
	long long fir=tsc[1];
	long long maxc=tsc[1]+spc[1];
	for(int i=2;i<=n;i++)
	{
		tsc[i]=maxc;
		if(spc[i]+tsc[i]>maxc)
		maxc=spc[i]+tsc[i];
		if(maxc>OO)
		{
			f=true;
			maxc%=p;
		}
	}
	if(f)
	fout<<tsc[n]%p;
	else
	fout<<max(tsc[1],tsc[n])%p;
	return 0;
}