按照依次逻辑顺序,从大到小装,不够加箱。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 int s1, s2, s3, s4, s5, s6; 6 while (cin >> s1 >> s2 >> s3 >> s4 >> s5 >> s6) { 7 if (s1 + s2 + s3 + s4 + s5 + s6 == 0) break; 8 int ans = s6 + s5 + s4 + s3 / 4; 9 s3 = s3 % 4; // 4个3*3构成1个6*6 10 int c1 = s5 * 11, c2 = s4 * 5; 11 if (s3 == 3) ans++, c2 += 1, c1 += 5; 12 else if (s3 == 2) ans++, c2 += 3, c1 += 6; 13 else if (s3 == 1) ans++, c2 += 5, c1 += 7; 14 if (s2 > c2) { 15 ans = ans + (s2 - c2) / 9; 16 int p = (s2 - c2) % 9; 17 if (p != 0) ans++, c1 = c1 + (9 - p) * 4; 18 } else { 19 c1 = c1 + (c2 - s2) * 4; 20 } 21 if (s1 > c1) { 22 ans = ans + (s1 - c1) / 36; 23 int p = (s1 - c1) % 36; 24 if (p) ans++; 25 } 26 cout << ans << endl; 27 } 28 return 0; 29 }