#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void test0()
{
int a,b,c,d,e,f;
while(1)
{
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
break;
int cnt=0;
//4,5,6若不为0的,直接将其数值加入cnt中
cnt=d+e+f+(c+3)/4;
int x,y;
//x表示能够存放的2*2产品的数目,
//y表示能够存放的1*1产品的数目
x=0,y=0;
y+=e*11;
x+=d*5;
if(c%4==1)
{
x+=5;
y+=7;
}
else if(c%4==2)
{
x+=3;
y+=6;
}
else if(c%4==3)
{
x+=1;
y+=5;
}
if(x<b)
{
cnt+=(b-x+8)/9;
y+=36-4*((b-x)%9);
}
else
{
y+=4*(x-b);
}
if(y<a)
cnt+=(a-y+35)/36;
printf("%d\n",cnt);
}
}
int main()
{
test0();
return 0;
}
1.作者答案用的一个数组:
int u[4]= {0,5,3 1},用来表示3*3的四种情况,很巧妙。
2.(c+3)/4等于c/4向上取整的结果,此处也很妙,学习了。