POJ 1017

来源:互联网 发布:软件测试兼职平台 编辑:程序博客网 时间:2024/05/17 01:27
#include <iostream>
using namespace std;
int main()
{
   int a[7];
   int pnum;
   while(cin>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6],a[1]||a[2]||a[3]||a[4]||a[5]||a[6])
   {
  int i,j;
  pnum=a[6]+a[5]+a[4]+a[3]/4;
  if(a[3]%4!=0)        //此处要细心,当不能整除时,包裹数目增加一个
 pnum++;
       if(a[5]*11>a[1])
  a[1]=0;
  else
  a[1]-=11*a[5];
  if(a[4]*5>=a[2])           //先用2*2填
  {
  if(a[1]>4*(a[4]*5-a[2]))      //剩余的用1*1填
  a[1]-=(4*a[4]*5-a[2]*4);
  else
  a[1]=0;
   a[2]=0;
  }
  else
  a[2]-=a[4]*5;
  if(a[3]%4!=0)
  {
  int num=(a[3]/4+1)*4-a[3];     //剩余3*3没有填满的部分的个数
  if(2*num-1>a[2])               //先用2*2填
  {            
  if(a[1]>9*num-a[2]*4)      //剩余的用1*1填
  a[1]-=9*num-a[2]*4;      
  else
  a[1]=0;
   a[2]=0;
  }
  else
  {
  a[2]-=2*num-1;
  if(a[1]>9*num-(2*num-1)*4)
  a[1]-=9*num-(2*num-1)*4;
  else
  a[1]=0;


  }
 
         }
int area=a[2]*4+a[1];
pnum+=area/36;
if(area%36!=0)
pnum+=1;
printf("%d\n",pnum);








   }
   return 0;
}
原创粉丝点击