#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; }