标签:
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 17327    Accepted Submission(s): 7764
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a,b,c;
    while( cin >> a >> b >> c,a,b,c)
    {
        if(a >= 4 || (a >= 2 && b >=1) || (a >= 1 && b >= 2))
        {
            cout << a + b * 2 + c * 5 + 1 << endl;
            continue;
        }
        if(a == 0)
            cout << "1" << endl;
        else if(b == 0)
            cout << a + 1 << endl;
        else if(a == 1 && b == 1)
            cout << "4" << endl;
    }
    return 0;
}
#include <iostream>
#include <memory.h>
#define N 8000
using namespace std;
int num[4];
int c1[N+10],c2[N+10];
int main()
{
    int i,j,k;
    int value[4]= {0,1,2,5};
    while(cin>>num[1]>>num[2]>>num[3])
    {
        if(num[1]==0&&num[2]==0&&num[3]==0)
            return 0;
        int n=0;
        for(i=1;i<=3;i++)
            n+=num[i]*value[i];
        memset(c1,0,sizeof(c1));
        memset(c2,0,sizeof(c2));
        c1[0]=1;
        for (i=1; i<=3; i++)
        {
            for (j=0; j<=n; j++)
                for (k=0; k*value[i]+j<=n&&k<=num[i]; k++)
                {
                    c2[j+k*value[i]]+=c1[j];
                }
            for (j=0; j<=n; j++)
            {
                c1[j]=c2[j];
                c2[j]=0;
            }
        }
        int s;
        for(s=1;s<=n;s++)
        {
            if(c1[s]==0)
                break;
        }
        cout<<s<<endl;
    }
    return 0;
}
标签:
原文地址:http://www.cnblogs.com/bushuiqitiandi/p/4677580.html