记录编号 81734 评测结果 EEEEEEEEEE
题目名称 求和 最终得分 0
用户昵称 GravatarChenyao2333 是否通过 未通过
代码语言 C++ 运行时间 0.736 s
提交时间 2013-11-17 15:43:18 内存使用 0.29 MiB
显示代码纯文本
#include<stdio.h>
#include<string.h>

const int MAXP=108;
bool a[MAXP+10]={0};
bool b[MAXP+10]={0};

int K,P;

int ans=MAXP;

inline void solve(bool q[],bool w[],int t){
	w[t]=true;
	for(int i=0;i<MAXP;i++){
		if(q[i]){
			int x=(t+i)%P;
			w[x]=true;
			if(x>=K && x<ans)ans=x;
		}
	}
}

void open(){
	freopen("suma.in","r",stdin);
	freopen("suma.out","w",stdout);
}
		
int main(){
	open();
	int n,t;
	bool op=true;
	scanf("%d %d %d",&n,&K,&P);
	while(n-->0){
		scanf("%d",&t);
		t%=P;
		if(op){  memset(b,0,sizeof(b)); solve(a,b,t); op^=1;}
		else { memset(a,0,sizeof(a)); solve(b,a,t); op^=1;}
		if(ans==K){
			printf("%d",ans);
			return 0;
		}
	}
	printf("%d",ans);
	return 0;
}