| 比赛 | 20101119 | 评测结果 | WWTTTTTTTT | 
    | 题目名称 | 求和 | 最终得分 | 0 | 
    | 用户昵称 | 了反取字名我擦 | 运行时间 | 0.000 s | 
    | 代码语言 | C++ | 内存使用 | 0.00 MiB | 
    | 提交时间 | 2010-11-19 09:21:25 | 
显示代码纯文本
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fi("suma.in");
ofstream fo("suma.out");
long long data[100001]={0};
int n,k,p;
int m(int a,int b)
{
	if(a<=b)
		return a;
	else
		return b;
}
int m(int a,int b,int c)
{
	if(a<=b)
		if(a<=c)
			return a;
		else
			return c;
	else
		if(b<=c)
			return b;
		else
			return c;
}
int main()
{
	fi>>n>>k>>p;
	for(int i=0;i<n;i++)
	{
		fi>>data[i];
		data[i]=data[i]%p;
	}
	for(int i=1;i<n;i++)
		for(int j=0;j<n-i;j++)
			if((data[j]+data[j+1])%p>=k)
				data[j]=m(data[j],data[j+1],(data[j]+data[j+1])%p);
			else
				data[j]=m(data[j],data[j+1]);
	fo<<data[0];
	fi.close();
	fo.close();
	return 0;
}