// mc2b.cpp : Defines the entry point for the console application. // #include #include #include #include #include #include using namespace std; map hexa; int n, m, i, j; char diez, r1, r2, g1, g2, b1, b2; vector to_print; int main() { hexa['0'] = 0; hexa['1'] = 1; hexa['2'] = 2; hexa['3'] = 3; hexa['4'] = 4; hexa['5'] = 5; hexa['6'] = 6; hexa['7'] = 7; hexa['8'] = 8; hexa['9'] = 9; hexa['A'] = 10; hexa['B'] = 11; hexa['C'] = 12; hexa['D'] = 13; hexa['E'] = 14; hexa['F'] = 15; cin >> n >> m; for (i = 1; i <= n; i++) { for (j = 1; j <= m; j++) { cin >> diez; cin >> r1 >> r2; cin >> g1 >> g2; cin >> b1 >> b2; int init; int p1, p2; char cr, cg, cb; init = hexa[r1] * 16 + hexa[r2]; p1 = hexa[r1] * 16 + hexa[r1]; p2 = hexa[r2] * 16 + hexa[r2]; if (abs(init - p1) < abs(init - p2)) { cr = r1; } else if (abs(init - p1) > abs(init - p2)) { cr = r2; } else { cr = min(r1, r2); } char oldr1 = r1; if (r1 != 'F') { if (r1 == '9') { r1 = 'A'; } else r1++; } else goto _exitr1; p1 = hexa[r1] * 16 + hexa[r1]; p2 = hexa[cr] * 16 + hexa[cr]; if (abs(init - p1) < abs(init - p2)) { cr = r1; } else if (abs(init - p1) > abs(init - p2)) { cr = cr; } else { cr = min(r1, cr); } _exitr1: r1 = oldr1; if (r1 != '0') { if (r1 == 'A') { r1 = '9'; } else r1--; } else { goto _exitr2; } p1 = hexa[r1] * 16 + hexa[r1]; p2 = hexa[cr] * 16 + hexa[cr]; if (abs(init - p1) < abs(init - p2)) { cr = r1; } else if (abs(init - p1) > abs(init - p2)) { cr = cr; } else { cr = min(r1, cr); } _exitr2: init = hexa[g1] * 16 + hexa[g2]; p1 = hexa[g1] * 16 + hexa[g1]; p2 = hexa[g2] * 16 + hexa[g2]; if (abs(init - p1) < abs(init - p2)) { cg = g1; } else if (abs(init - p1) > abs(init - p2)) { cg = g2; } else { cg = min(g1, g2); } char oldg1 = g1; if (g1 != 'F') { if (g1 == '9') { g1 = 'A'; } else g1++; } else goto _exitg1; p1 = hexa[g1] * 16 + hexa[g1]; p2 = hexa[cg] * 16 + hexa[cg]; if (abs(init - p1) < abs(init - p2)) { cg = g1; } else if (abs(init - p1) > abs(init - p2)) { cg = cg; } else { cg = min(r1, cg); } _exitg1: g1 = oldg1; if (g1 != '0') { if (g1 == 'A') { g1 = '9'; } else g1--; } else goto _exitg2; p1 = hexa[g1] * 16 + hexa[g1]; p2 = hexa[cg] * 16 + hexa[cg]; if (abs(init - p1) < abs(init - p2)) { cg = g1; } else if (abs(init - p1) > abs(init - p2)) { cg = cg; } else { cg = min(r1, cg); } _exitg2: init = hexa[b1] * 16 + hexa[b2]; p1 = hexa[b1] * 16 + hexa[b1]; p2 = hexa[b2] * 16 + hexa[b2]; if (abs(init - p1) < abs(init - p2)) { cb = b1; } else if (abs(init - p1) > abs(init - p2)) { cb = b2; } else { cb = min(b1, b2); } char oldb1 = b1; if (b1 != 'F') { if (b1 == '9') { b1 = 'A'; } else b1++; } else goto _exitb1; p1 = hexa[b1] * 16 + hexa[b1]; p2 = hexa[cb] * 16 + hexa[cb]; if (abs(init - p1) < abs(init - p2)) { cb = b1; } else if (abs(init - p1) > abs(init - p2)) { cb = cb; } else { cb = min(b1, cb); } _exitb1: b1 = oldb1; if (b1 != '0') { if (b1 == 'A') { b1 = '9'; } else b1--; } else goto _exitb2; p1 = hexa[b1] * 16 + hexa[b1]; p2 = hexa[cb] * 16 + hexa[cb]; if (abs(init - p1) < abs(init - p2)) { cb = b1; } else if (abs(init - p1) > abs(init - p2)) { cb = cb; } else { cb = min(b1, cb); } _exitb2: string res = "#"; res += cr; res += cg; res += cb; to_print.push_back(res); //cout << "#" << cr << cg << cb << " "; } //cout << "\n"; } int k = 0; for (i = 1; i <= n; i++) { for (j = 1; j <= m; j++) { cout << to_print[k] << " "; k++; } cout << "\n"; } }