优先装较小规格中较大的箱子
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,x,y;//x,y分别为给规格1,2的箱子剩余的空间
int sum;
while(~scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f))
{
if(a+b+c+d+e+f==0)
break;
sum=f+e+d+(c+3)/4;//(c+3)/4是向上取整
y=d*5;//因为装规格为5的箱子还能最多装5个规格为2的箱子
if(c%4==3)
//判断规格为3的箱子数
y+=1;
else if(c%4==2)
y+=3;
else if(c%4==1)
y+=5;
//如果1*1和2*2的仍没有装完
if(y<b)
sum+=((b-y)+8)/9;
x=36*sum-36*f-25*e-16*d-9*c-4*b;//x为剩余空间
if(x<a)
sum+=((a-x)+35)/36;
printf("%d\n",sum);
}
}