1 #include <iostream>
2 using namespace std;
3 int c1[10001],c2[10001];
4 int main()
5 {
6 int num1,num2,num5,i,j,k,u,o;
7 while (cin>>num1>>num2>>num5 && (num1|| num2 || num5))
8 {
9 for (i=0;i<=10001;i++)
10 {c1[i]=1;c2[i]=0;}//初始化
11
12 for (j=0,o=0;o<=num1;j++,o++)//o为1分数量限制,j为1分组成的价格
13 {
14 for (k=0,u=0;u<=num2;k+=2,u++)//k为2分的价格,u为2分个数限制
15 {
16 c2[j+k]+=c1[j];
17 }
18 }//穷举出所有2分和1分的总和
19 for (int w=0;w<=10001;w++)
20 {c1[w]=c2[w];c2[w]=0;}
21 int t=j+k-3;
22 for (j=0,o=0;o<=t;j++,o++)
23 {
24 for (k=0,u=0;u<=num5;k+=5,u++)//同上,处理5分的情况,母函数真神奇
25 {
26 c2[j+k]+=c1[j];
27 }
28 }
29 for (int w=0;w<=10001;w++)
30 {c1[w]=c2[w];c2[w]=0;}//c2 复制到c1
31 int p;
32 for (p=1;p<=10001;p++)
33 {if (c1[p]==0)
34 {break;}}//找出最小的不能表示的价值
35 cout<<p<<endl;
36 }
37 return 0;
38 }
39 //甘露大牛的母函数 个人加了批注,学习中。。。
posted on 2009-01-28 22:30
混沌的云 阅读(336)
评论(0) 编辑 收藏 引用