#include #include char pole[7][11][20] = { { "+---+", " +", "+---+", "+---+", "+ +", "+---+", "+---+", "+---+", "+---+", "+---+", " " }, { "| |", " |", " |", " |", "| |", "| ", "| ", " |", "| |", "| |", " " }, { "| |", " |", " |", " |", "| |", "| ", "| ", " |", "| |", "| |", "o" }, { "+ +", " +", "+---+", "+---+", "+---+", "+---+", "+---+", " +", "+---+", "+---+", " " }, { "| |", " |", "| ", " |", " |", " |", "| |", " |", "| |", " |", "o" }, { "| |", " |", "| ", " |", " |", " |", "| |", " |", "| |", " |", " " }, { "+---+", " +", "+---+", "+---+", " +", "+---+", "+---+", " +", "+---+", "+---+", " " } }; int maska[4][10]; int porovnej(char* str1, char* str2) { //printf("porovnej: '%s', '%s'\n", str1, str2); for (int i = 0; i < 5; i++) { if (str1[i] == '.') continue; if (str1[i] != str2[i]) { //printf("0\n"); return 0; } } return 1; } int main() { char l[100]; while (1) { gets(l); if (!strcmp(l, "end")) { printf("end\n"); break; } for (int i = 0; i < 4; i++) { for (int k = 0; k < 10; k++) { maska[i][k] = 0; } } for (int k = 0; k < 3; k++) { maska[0][k] = 1; } for (int k = 0; k < 6; k++) { maska[2][k] = 1; } for (int k = 0; k < 10; k++) { maska[1][k] = 1; } for (int k = 0; k < 10; k++) { maska[3][k] = 1; } for (int j = 0; j < 7; j++) { for (int i = 0; i < 10; i++) { int pos = 0; for (int k = 0; k < 4; k++, pos += 7) { if (k == 2) pos += 3; if (maska[k][i] == 0) continue; maska[k][i] = porovnej(&l[pos], pole[j][i]); } } gets(l); } int pocty[4] = {}; int bad = 0; for (int i = 2; i < 4; i++) { for (int k = 0; k < 10; k++) { if (maska[i][k]) pocty[i]++; } if (pocty[i] > 1) bad = 1; } for (int i = 0; i < 24; i++) { if (maska[0][i/10] && maska[1][i%10]) { pocty[0]++; } if (pocty[0] > 1) bad = 1; } if (bad == 1) { printf("ambiguous\n"); } else { for (int i = 0; i < 24; i++) { if (maska[0][i/10] && maska[1][i%10]) { pocty[0] = i; break; } } for (int i = 2; i < 4; i++) { for (int k = 0; k < 10; k++) { if (maska[i][k]) pocty[i] = k; } } printf("%02d:%d%d\n", pocty[0], pocty[2], pocty[3]); } gets(l); } return 0; }