记录编号 192634 评测结果 AAAAAAAAAA
题目名称 [NOIP 1996]砝码称重 最终得分 100
用户昵称 Gravatarmikumikumi 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2015-10-12 09:05:15 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cmath>
bool H[1010];
int s[10],ma=0,ans=0;
int main()
{
	freopen("fmcz.in","r",stdin);
	freopen("fmcz.out","w",stdout);
	H[0]=1;
	for(int i=1;i<=6;i++) scanf("%d",&s[i]);
	//for(int i=1;i<=6;i++) printf("%d ",s[i]);
	for(int i=1;i<=6;i++)
	{
		int now=0;
		if(i==1) now=1;
		if(i==2) now=2;
		if(i==3) now=3;
		if(i==4) now=5;
		if(i==5) now=10;
		if(i==6) now=20;
		for(int j=1;j<=s[i];j++)
		{
			int m=ma;
			bool nowH[1010]={0};
			for(int k=0;k<=m;k++)
			{
				if(H[k]) 
				{
					nowH[k+now]=1;
					if(k+now>ma) ma=k+now;
				}
			}
			for(int k=0;k<=ma;k++) if(!H[k]) H[k]=nowH[k];
		}
	}
	for(int i=1;i<=ma;i++) if(H[i]) ans++;
	printf("%d",ans);
	return 0;
}