
1 1 3 0 0 0
4
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int c1[8100];
int c2[8100];
int generation(int x,int y,int z)
{
int coin[3]={1,2,5};
int num[3]={x,y,z};
int Max=x*1+y*2+z*5;
memset(c2,0,sizeof(c2));
memset(c1,0,sizeof(c1));
for(int i=0;i<=x;i++){
c1[i]=1;
//c2[i]=0;
}
for(int i=1;i<3;i++){
for(int j=0;j<=Max;j++){
for(int k=0;k+j<=Max&&k/coin[i]<=num[i];k+=coin[i]){
c2[j+k]+=c1[j];
}
}
for(int j=0;j<=Max;j++){
c1[j]=c2[j];
c2[j]=0;
}
}
for(int i=0;i<=Max+1;i++){
if(c1[i]==0)
return i;
}
// return c1[Max];
}
int main()
{
int x,y,z;
while(scanf("%d%d%d",&x,&y,&z),x!=0||y!=0||z!=0){
printf("%d\n",generation(x,y,z));
}
return 0;
}版权声明:本文为博主原创文章,转载请注明出处。
HDOJ Holding Bin-Laden Captive! 1085【母函数】
原文:http://blog.csdn.net/ydd97/article/details/47261977