// @BEGIN_OF_SOURCE_CODE /* @JUDGE_ID: 17243NT 154 C++ "'Recycled' code" */ #include #include #ifdef ONLINE_JUDGE #define ins cin #define outs cout #else #define ins fin #define outs fout ifstream fin("myprog.in"); ofstream fout("myprog.out"); #endif typedef struct { int bins[5]; } city; int ncities = 0; city cities[200]; int imposecity(int cnum); int main() { char c; int i, j; int bestcity, bestnum; for(;;) { ins >> c; if(c == '#') break; if(c != 'e') { ins.putback(c); char bin, slash, recycler, comma; for(i = 0; i < 5; i++) { ins >> bin >> slash >> recycler >> comma; if(bin == 'r') cities[ncities].bins[0] = recycler; if(bin == 'o') cities[ncities].bins[1] = recycler; if(bin == 'y') cities[ncities].bins[2] = recycler; if(bin == 'g') cities[ncities].bins[3] = recycler; if(bin == 'b') cities[ncities].bins[4] = recycler; } ncities++; ins.putback(comma); } else { char buffer[2000]; ins.getline(buffer, 1000); bestcity = 0; bestnum = imposecity(0); for(i = 1; i < ncities; i++) { j = imposecity(i); if(j < bestnum) { bestcity = i; bestnum = j; } } cout << bestcity + 1 << endl; ncities = 0; } } return 0; } int imposecity(int cnum) { int changes = 0; for(int i = 0; i < ncities; i++) for(int j = 0; j < 5; j++) if(cities[cnum].bins[j] != cities[i].bins[j]) changes++; return changes; } // @END_OF_SOURCE_CODE