View Code of Problem 88

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<climits>

using namespace std;


int main()
{
	vector<int> packet(7);

	for (int i = 1; i <= 6; i++)
		cin >> packet[i];

	int res = packet[6];

	while (packet[5] > 0) {

		res++;

		packet[5]--;

		if (packet[1] <= 11)
			packet[1] = 0;
		else
			packet[1] -= 11;
	}

	while (packet[4] > 0) {

		res++;

		packet[4]--;

		if (packet[2] <= 5) {

			int remain = 20 - packet[2] * 4;

			packet[2] = 0;

			if (packet[1] <= remain)
				packet[1] = 0;
			else
				packet[1] -= remain;
		}
		packet[2] -= 5;
	}

	while (packet[3] > 0) {

		res++;

		if (packet[3] <= 4) {

			int remain = 36 - packet[3] * 9;
			packet[3] = 0;

			if (packet[2] * 4 <= remain) {

				remain -= packet[2] * 4;
				packet[2] = 0;
			}

			if (packet[1] <= remain)
				packet[1] = 0;
			else
				packet[1] -= remain;
		}
		else
			packet[3] -= 4;
	}

	while (packet[2] > 0) {

		res++;

		if (packet[2] <= 9) {

			int remain = 36 - packet[2] * 4;
			packet[2] = 0;

			if (packet[1] <= remain)
				packet[1] = 0;
			else
				packet[1] -= remain;
		}
		else
			packet[2] -= 9;
	}

	while (packet[1]) {

		res++;

		if (packet[1] <= 36)
			packet[1] = 0;
		else
			packet[1] -= 36;
	}

	cout << res << endl;
}

Double click to view unformatted code.


Back to problem 88