#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int maxn=8000;
int c1[maxn+10],c2[maxn+10],last,last2;
int main(){
int money[4]={0,1,2,5},num[4],x;
while(scanf("%d%d%d",&num[1],&num[2],&num[3])!=EOF){
if(!(num[1]||num[2]||num[3])) break;
memset(c1,0,sizeof(c1));
memset(c2,0,sizeof(c2));
c1[0]=1; last=0;
for(int i=1;i<=3;i++){
last2=min(maxn,last+num[i]*money[i]);
for(int j=0;j<=last;j++){
x=num[i]*money[i];
for(int k=0;k<=x&&j+k<=last2;k+=money[i]){
c2[j+k]+=c1[j];
}
}
memcpy(c1,c2,sizeof(int)*(last2+1));
memset(c2,0,sizeof(int)*(last2+1));
last=last2;
}
for(int i=1;;i++)
if(c1[i]==0){
printf("%d\n",i);
break;
}
}
}
hdu1085母函数模板
最新推荐文章于 2019-06-29 14:22:25 发布