#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
static const int lmax = 1000000;
static int C1[lmax],C2[lmax];
int main()
{
int a1,a2,a5;
int total;
while(scanf("%d %d %d",&a1,&a2,&a5))
{
if (a1==0&&a2==0&&a5==0)
break;
total = a1+a2*2+a5*5;//总硬币的个数
memset(C1,0,sizeof(C1));
for (int i=0;i<=a1;++i)
{
C1[i] = 1;
C2[i] = 0;
}
for (int j=0;j<=total;++j)
{
for (int k=0;k<=a2;k++)
{
C2[j+k*2]+=C1[j];
}
}
for (int j=0;j<=total;++j)
{
C1[j] = C2[j];
C2[j] = 0;
}
for (int j=0;j<=total;++j)
{
for (int k=0;k<=a5;k++)
{
C2[j+k*5]+=C1[j];
}
}
for (int j=0;j<=total;++j)
{
C1[j] = C2[j];
C2[j] = 0;
}
bool flag = false;
int ans = -1;
for (int i=0;i<=total;++i)
{
if (C1[i]==0)
{
flag = true;
ans = i;
break;
}
}
if (flag)
{
printf("%d\n",ans);
}
else
printf("%d\n",total+1);
}
return 0;
}
HDOJ1085母函数的应用
最新推荐文章于 2018-01-06 17:21:53 发布