Saturday, June 6, 2015

UVa 102 - Ecological Bin Packing

// UVa 102 - Ecological Bin Packing

#include <iostream>
#include <string>
using namespace std;

const string color[3] = { "B", "G", "C" };

int main() {
	unsigned long long a[3][3];
	while (cin >> a[0][0] >> a[0][1] >> a[0][2] >> a[1][0] >> a[1][1] >> a[1][2] >> a[2][0] >> a[2][1] >> a[2][2]) {
		unsigned long long max = 0;
		string sol("ZZZ");
		for (int i = 0; i < 3; i++)
			for (int j = 0; j < 3; j++)
				if (i != j)
					for (int k = 0; k < 3; k++)
						if (k != i && k != j) {
							if ((a[0][i] + a[1][j] + a[2][k] > max) || (a[0][i] + a[1][j] + a[2][k] == max && color[i] + color[j] + color[k] < sol)) {
								max = a[0][i] + a[1][j] + a[2][k];
								sol = color[i] + color[j] + color[k];
							}
						}
		cout << sol << " " << a[0][0] + a[0][1] + a[0][2] + a[1][0] + a[1][1] + a[1][2] + a[2][0] + a[2][1] + a[2][2] - max << endl;
	}
	return 0;
}

No comments:

Post a Comment