View Code of Problem 88

#include<bits/stdc++.h>
using namespace std;
int cnt[7];
int main() {
	for (int i = 1; i <= 6; i++)
		cin >> cnt[i];
	// 4,5,6型号的货物,每个都需要耗费一个箱子;4个3号货物需要1个箱子
	int sum = cnt[6] + cnt[5] + cnt[4] + cnt[3] / 4;
	// 对箱子的空余空间进行填充
	cnt[1] -= cnt[5] * 11;
	cnt[2] -= cnt[4] * 5;
	cnt[3] -= cnt[3] / 4 * 4;
	// 检查1-3号货物是否有多余
	if (cnt[3]>0) {
		sum++;
		// 分类讨论
		int k = cnt[3] % 4;
		if (k == 1) {
			cnt[1] -= 5;
			cnt[0] -= 7;
		}
		else if (k == 2) {
			cnt[1] -= 3;
			cnt[0] -= 6;
		}
		else if (k == 3) {
			cnt[1] -= 1;
			cnt[0] -= 5;
		}
	}
	if (cnt[2]>0) {
		sum += cnt[2] / 9;
		int k = cnt[2] % 9;
		cnt[1] = 36 - k * 4;
	}
	if (cnt[1] > 0)
		sum += cnt[1] / 36 + cnt[1] % 36;
	cout << sum << endl;
	return 0;
}

Double click to view unformatted code.


Back to problem 88