/*
Time:2019.11.1
Author: Goven
type:二维装箱:枚举
err:
ref:https://blog.csdn.net/lyy289065406/article/details/6674366
*/
#include<iostream>
using namespace std;
int main()
{
int a[7], num[] = {0, 5, 3, 1}, k[] = {0, 7, 6, 5};
int flag, sum, t;
while(1) {
flag = 0;
for (int i = 1; i < 7; i++) {
cin >> a[i];
flag += a[i];
}
if (!flag) break;
sum = a[6];
sum += a[5];
a[1] = max(0, a[1] - 11 * a[5]);
sum += a[4];
if (a[4] * 5 > a[2]) {
a[1] = max(0, a[1] - (20 * a[4] - 4 * a[2]));
a[2] = 0;
}
else {
a[2] -= a[4] * 5;
}
sum += a[3] / 4;
t = a[3] % 4;
if (t) {
sum++;
if (num[t] >= a[2]) {
a[1] = max(0, a[1] - (36 - t * 9 - 4 * a[2]));
a[2] = 0;
}
else {
a[2] -= num[t];
a[1] = max(0, a[1] - k[t]);
}
}
sum += a[2] / 9;
t = a[2] % 9;
if (t){
sum++;
a[1] = max(0, a[1] - (36 - 4 * t));
}
sum += a[1] / 36;
if (a[1] % 36) sum++;
cout << sum << endl;
}
return 0;
}
网友评论