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

posted on 2011-07-25 17:05  枫叶飘泪  阅读(192)  评论(0编辑  收藏  举报