比赛 |
noip2016普及练习1 |
评测结果 |
AAAAAAAAAA |
题目名称 |
砝码称重 |
最终得分 |
100 |
用户昵称 |
Lethur |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2016-11-03 20:49:18 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
freopen("fmcz.in","r",stdin);
freopen("fmcz.out","w",stdout);
int a[7]={0,1,2,3,5,10,20},w[1001],num[7];
int i,j,k,sum;
while(cin>>num[1])
{
memset(w,0,sizeof(w));
for(i=2;i<=6;i++)
cin>>num[i];
for(i=1;i<=6;i++)
for(j=1;j<=num[i];j++)
{
w[a[i]]++;//该物品出现一次
for(k=1000;k>=1;k--)//从后往前搜索,不会覆盖前一次的状态
{
if (k==a[i] && w[i]>1)//保证不会让一个质量为2或者3之类的物品无限自加
w[k+a[i]]++;
if (w[k]!=0 && k!=a[i])
w[k+a[i]]++;
}
}
sum=0;
for(i=1;i<=1000;i++)
if (w[i]!=0)
sum++;
cout<<sum<<endl;
}
return 0;
}