记录编号 237122 评测结果 AAAAAAAAAA
题目名称 [NOIP 1996]砝码称重 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2016-03-16 09:57:05 内存使用 0.30 MiB
显示代码纯文本
#include<cstdio>
int _w[]={0,1,2,3,5,10,20};
int num[7];
int w[2000];
bool f[2000];
int main(){
	freopen("fmcz.in","r",stdin);
	freopen("fmcz.out","w",stdout);
	int ans=0;
	for(int i=1;i<=6;++i)scanf("%d",&num[i]);
	int n=0;
	for(int i=1;i<=6;++i){
		for(int j=1;num[i]-j>=0;j<<=1){
			w[++n]=_w[i]*j;
			num[i]-=j;
		}
		w[++n]=_w[i]*num[i];
	}
	f[0]=true;
	for(int i=1;i<=n;++i){
		for(int j=1000;j>=1;--j){
			if(j>=w[i]&&f[j-w[i]]&&!f[j]){
				f[j]=true;ans++;
			}
		}
	}
	printf("%d",ans);
	fclose(stdin);fclose(stdout);
	return 0;
}