HDU 1085

来源:互联网 发布:java认证考试报名 编辑:程序博客网 时间:2024/06/09 16:24
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){    int a1[2005],a2[2005],c[3],d[4]= {1,2,5};    while(scanf("%d%d%d",&c[0],&c[1],&c[2]),c[0]+c[1]+c[2])    {        int sum;        int i,j,k;        sum=1*c[0]+2*c[1]+5*c[2];        memset(a1,0,sizeof(a1));        memset(a2,0,sizeof(a2));        for(i=0; i<=c[0]; i++)        {            a1[i]=1;        }        for(i=1; i<3; i++)        {            for(j=0; j<=sum; j++)            {                if(a1[j])                {                    for(k=0; k+j<=sum&&k<=c[i]*d[i]; k+=d[i])                    {                        a2[k+j]+=a1[j];                    }                }            }            for(j=0; j<=sum; j++)            {                a1[j]=a2[j];                a2[j]=0;            }        }        for(i=1; i<=sum+1; i++)//这里要特别注意,i不能等于0,还有就是当1到sum都有的话,那么就要输出sum+1        {            if(a1[i]==0)            {                printf("%d\n",i);                break;            }        }    }    return 0;}

原创粉丝点击