记录编号 100152 评测结果 EEEEEEEEEE
题目名称 [NOIP 2013PJ]小朋友的数字 最终得分 0
用户昵称 Gravatarzjh001 是否通过 未通过
代码语言 C 运行时间 0.731 s
提交时间 2014-05-03 17:51:30 内存使用 11.73 MiB
显示代码纯文本
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int n,p;
int a[1000001];
int tz[1000001];
int fs[1000001];

int main()
{
	int i,max;
	
	//freopen("number.in","r",stdin);
	//freopen("number.out","w",stdout);
	
	scanf ("%d%d",&n,&p);
	
	for (i=1;i<=n;i++)
		scanf ("%d",&a[i]);
	
	tz[1]=a[1];
	
	for (i=2;i<=n;i++)
	{
		if (tz[i-1]+a[i]>a[i])
			tz[i]=tz[i-1]+a[i];
		else
			tz[i]=a[i];
	}

	fs[1]=tz[1];
	max=fs[1]+tz[1];
	
	for (i=2;i<=n;i++)
	{
		fs[i]=max;
		if (max<fs[i]+tz[i]&&i!=n)
			max=fs[i]+tz[i];
	}
	
	max=-2000000000;
	
	for (i=1;i<=n;i++)
	{
		if (max<fs[i])
			max=fs[i];
	}
	
	if (max<0)
	{
		max=abs(max)%p;
		printf ("-%d\n",max);
	}
	else
	{
        max=max%p;
		printf ("%d\n",max);
	}
	
	while (1);
	return 0;
}