【題目敘述】https://zerojudge.tw/ShowProblem?problemid=c110
【解題想法】Greedy【筆記】
- 想要使用最少的箱子,因此從尺寸最大的箱子開始使用。
while True:
lst1 = list(map(int, input().split()))
lst2 = [0, 0]
if sum(lst1) == 0:
break
ans = 0
ans += lst1[5]
ans += lst1[4]
lst2[0] += lst1[4] * 11
ans += lst1[3]
lst2[1] += lst1[3] * 5
if lst1[2] % 4 == 0:
ans += lst1[2] // 4
else:
lst2[1] += 7 - (lst1[2] % 4) * 2
lst2[0] += 8 - (lst1[2] % 4)
ans += lst1[2] // 4 + 1
if lst1[1] > lst2[1]:
lst1[1] -= lst2[1]
if lst1[1] % 9 == 0:
ans += lst1[1] // 9
else:
lst2[0] += (9 - (lst1[1] % 9)) * 4
ans += lst1[1] // 9 + 1
elif lst1[1] < lst2[1]:
lst2[0] += (lst2[1]-lst1[1]) * 4
if lst1[0] > lst2[0]:
lst1[0] -= lst2[0]
if lst1[0] % 36 == 0:
ans += lst1[0] // 36
else:
ans += lst1[0] // 36 + 1
print(ans)