标签:
1 1 3 0 0 0
4
#include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <algorithm> #include <cmath> #define N 10009 using namespace std; int a[N]; int c1[N],c2[N]; int b[3]={1,2,5}; int main() { while(~scanf("%d %d %d",&a[0],&a[1],&a[2])) { if(a[1]+a[2]+a[0]==0) break; int sum=0; for(int i=0;i<3;i++) sum+=a[i]*b[i]; memset(c1,0,sizeof c1); memset(c2,0,sizeof c2); for(int i=0;i<=a[0];i++)//只有1面值的情况 c1[i]=1; for(int i=1;i<3;i++) { for(int j=0;j<=sum;j++) if(c1[j]) { for(int k=0;j+k<=sum&&k<=a[i]*b[i];k+=b[i]) c2[j+k]+=c1[j]; } for(int j=0;j<=sum;j++) c1[j]=c2[j],c2[j]=0; } int ans=0; for(int i=1;i<=10000;i++) if(c1[i]==0) {ans=i;break;} cout<<ans<<endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/wust_zjx/article/details/44259735