Revision: 44765
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 18, 2011 12:15 by dirkchang
Initial Code
/*
* ecological-bin.cpp
*
* Created on: Feb 23, 2011
* Author: dirk
*/
#include <iostream>
using namespace std;
enum Sequence { BCG = 0, BGC = 1, CBG = 2, CGB = 3, GBC = 4, GCB = 5, NUMBER = 6 };
char const * const &get_str(Sequence const &s) {
static char const * const str[] = { "BCG", "BGC", "CBG", "CGB", "GBC", "GCB" };
return str[s];
}
int main(int, char**) {
// bottles
// B G C B G C B G C
// 0 1 2 3 4 5 6 7 8
long long bottles[9] = {0};
long long m = 0, tmp = 0;
Sequence index;
while(cin >> bottles[0]) {
for(int i = 1; i < 9; ++i) {
cin >> bottles[i];
}
m = bottles[1] + bottles[2] + bottles[3] + bottles[4] + bottles[6] + bottles[8]; // BCG
index = BCG;
if((tmp=bottles[1] + bottles[2] + bottles[3] + bottles[5] + bottles[6] + bottles[7]) < m) {
m = tmp; // BGC
index = BGC;
}
if((tmp=bottles[0] + bottles[1] + bottles[4] + bottles[5] + bottles[6] + bottles[8]) < m) {
m = tmp; // CBG
index = CBG;
}
if((tmp=bottles[0] + bottles[1] + bottles[3] + bottles[5] + bottles[7] + bottles[8]) < m) {
m = tmp; // CGB
index = CGB;
}
if((tmp=bottles[0] + bottles[2] + bottles[4] + bottles[5] + bottles[6] + bottles[7]) < m) {
m = tmp; // GBC
index = GBC;
}
if((tmp=bottles[0] + bottles[2] + bottles[3] + bottles[4] + bottles[7] + bottles[8]) < m) {
m = tmp; // GCB
index = GCB;
}
cout << get_str(index) << ' ' << m << '\n';
}
}
Initial URL
Initial Description
Initial Title
Ecological Bin Packing
Initial Tags
Initial Language
C++