hdu 1085

hdu 1085

 

// 理解好模板后分步做 
#include  < stdio.h >
#include 
< stdlib.h >
 
int  main ()
{
    
int num1[9000];              
    
int num2[9000];
    
int number1, number2, number3;
    
    
while ( scanf ("%d%d%d"&number1, &number2, &number3) != EOF && ( number1 != 0 && number2 != 0 && number3 != 0 ) )
    
{
          int max;
          max = 1 * number1 + 2 * number2 + 5 * number3;
          //总体初始化 
          for (int i =0; i <= max; i ++)
          {
              num2[i] = 0;
              num1[i] = 0;            
          }                
          
          //第一个表达式和第二个表达式相乘
          for (int i = 0; i <= number1; i ++) //第一个表达式的所有面值都有一种情况 
          {
              num1[i] = 1;
          }  
          for (int i = 0; i <= number1 * 1; i ++)
          {
              for (int j = 0; j <= number2 * 2; j += 2)
              {
                  num2[i + j] += num1[i];
              }
          } 
          for (int i = 0; i <= number1 * 1 + number2 * 2; i ++)  //扩大面值范围 
          {
              num1[i] = num2[i];
              num2[i] = 0;
          }
          //第二个表达式和第三个表达式相乘
          for (int i = 0; i <= 1 * number1 + 2 * number2; i ++)
          {
              for (int j = 0; j <= 5 * number3; j += 5)
              {
                  num2[i + j] += num1[i];
              }
          } 
          for (int i =0; i <= max; i ++)
          {
              num1[i] = num2[i];
              num2[i] = 0;
          }
          
          int i;
          for ( i = 0; i <= max; i ++)
          {
              if (num1[i] == 0)
              {
                          printf ("%d\n", i);
                          break;
              }
          } 
          
          if(i == max+1)
            printf("%d\n", i);
                  
    }
    
   
// system ("pause");
    return 0;
}
 

你可能感兴趣的:(hdu 1085)