#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int num1,num2,num3;
int c1[10000],c2[10000];//万恶的数组,害我又一次纠结了,本来,我开1000的,结果一直wa,后来我在看了一下题目,发现竟然是说num-i<=1000,然后我们要求的数组的大小为num1*1+num2*2+num3*5的上限,为8000;
while(scanf("%d%d%d",&num1,&num2,&num3),num1||num2||num3)
{
for(int i=0;i<=num1+(num2*2)+(num3*5);i++)
{
c1[i]=0;
c2[i]=0;
}//这里要注意,要初始化到num1+(num2*2)+(num3*5)
for(int i=0;i<=num1;i++)
{
c1[i]=1;
}
for(int i=0;i<=num1;i++)
{
for(int j=0;j<=num2*2;j+=2)
{
c2[i+j]+=c1[i];
}
}
for(int i=0;i<=num1+(num2*2);i++)
{
c1[i]=c2[i];
c2[i]=0;
}
for(int i=0;i<=num1+(num2*2);i++)
{
for(int j=0;j<=num3*5;j+=5)
{
c2[i+j]+=c1[i];
}
}
for(int i=0;i<=num1+(num2*2)+(num3*5);i++)
{
c1[i]=c2[i];
c2[i]=0;
}
int i;
for(i=0;i<=num1+(num2*2)+(num3*5);i++)
{
if(c1[i]==0)
{
printf("%d\n",i);
break;
}
}
if(i==num1+(num2*2)+(num3*5)+1)
{
printf("%d\n",i);
}
}
//system("pause");
return 0;
}
转载于:https://www.cnblogs.com/zhangshu/archive/2011/07/25/2116439.html