uVA311包裹包含

来源:互联网 发布:mac 终端查找文件夹 编辑:程序博客网 时间:2024/03/29 12:41

这题本来是个水题,但是我前面坐的是统计前面几个盒子能装下1X1盒子的数量,估计会超LL,我没改成LL,

一直WA,然后我改成一边统计,一边比较,就A了。

这里贴上代码,写的略微复杂:

#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<string>#include<set>#include<map>#include<iostream>#include<algorithm>#include<vector>#include<cctype>#include<queue>#define LL long longusing namespace std;const int maxn=1e7+10;const double eps=1e-8;const int Max=2147483647;int main(){    int a[6];    while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5])    {        if(!a[0]&&!a[1]&&!a[2]&&!a[3]&&!a[4]&&!a[5])            break;        int sum=a[5];       // int tt=0;            if(a[4])            {                sum+=a[4];                int tem=a[4]*11;                if(a[0]>=tem)                    a[0]-=tem;                else                    a[0]=0;            }            if(a[3])            {                sum+=a[3];                int tem=a[3]*5;                if(a[1]>=tem)                    a[1]-=tem;                else                {                   tem=(tem-a[1])*4;                 if(a[0]>=tem)                    a[0]-=tem;                 else                    a[0]=0;                    a[1]=0;                }            }            if(a[2])            {                sum=sum+a[2]/4;                int tem=a[2]%4;                int tt=0;                if(tem)                 {                      sum++;                if(tem==1)                {                    if(a[1]>=5)                    {                        a[1]-=5;                        tt+=7;                    }                    else                    {                        tt=tt+27-4*a[1];                        a[1]=0;                    }                }                if(tem==2)                {                    if(a[1]>=3)                    {                         a[1]-=3;                         tt+=6;                    }                    else                    {                        tt=tt+18-4*a[1];                        a[1]=0;                    }                }                if(tem==3)                {                    if(a[1]>=1)                    {                        a[1]-=1;                        tt+=5;                    }                    else                    {                        tt=tt+9;                    }                }                 if(a[0]>=tt)                    a[0]-=tt;                 else                    a[0]=0;                  }            }            if(a[1])            {                sum=sum+a[1]/9;                int tem=a[1]%9;                if(tem)               {                sum++;                tem=36-tem*4;                if(a[0]>=tem)                    a[0]-=tem;                 else                    a[0]=0;               }            }            if(a[0])            {                sum=sum+a[0]/36;                if(a[0]%36)                    sum++;            }        cout<<sum<<endl;    }    return 0;}


0 0
原创粉丝点击