1 #include<stdio.h>
2 int main()
3 {
4 int n,a,b,c,d,e,f,x,y;
5 int u[4]={0,5,3,1};
6 while(1)
7 {
8 scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
9 if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)
10 break;
11 /*
12 统计单独占一个打包的个数
13 6,5,4都是一个占一个包,3是每4个占一个包
14 */
15 n=d+e+f+(c+3)/4;
16 /*
17 统计填补4*4和3*3需要的2*2的个数
18 u是一个技巧数组,用于记录3*3如果是0,1,2,3个时所需要的2*2的个数
19 */
20 y=5*d+u[c%4];
21 /*
22 消去用于填补的2*2
23 */
24 if(b>y)
25 n+=(b-y+8)/9;
26 /*
27 统计用于填补的1*1的个数
28 这里使用了1*1面积为1的特性,直接嵌入需要的地方
29 */
30 x=36*n-36*f-25*e-16*d-9*c-4*b;
31 if(a>x)
32 n+=(a-x+35)/36;
33 printf("%d\n",n);
34 }
35 return 0;
36 }