int readline(char *buffer) { int i; for (i = 0; i < 30; i++) { buffer[i] = getchar(); if (buffer[i] == '\n') return i; } getchar(); return i; } int main() { char cisl[][7][6] = { { "+---+", "| |", "| |", "+ +", "| |", "| |", "+---+", }, { " +", " |", " |", " +", " |", " |", " +" }, { "+---+", " |", " |", "+---+", "| ", "| ", "+---+" }, { "+---+", " |", " |", "+---+", " |", " |", "+---+" }, { "+ +", "| |", "| |", "+---+", " |", " |", " +" }, { "+---+", "| ", "| ", "+---+", " |", " |", "+---+" }, { "+---+", "| ", "| ", "+---+", "| |", "| |", "+---+" }, { "+---+", " |", " |", " +", " |", " |", " +" }, { "+---+", "| |", "| |", "+---+", "| |", "| |", "+---+" }, { "+---+", "| |", "| |", "+---+", " |", " |", "+---+" } }; char buffer[50]; int moznosti[4][10]; int offset[] = {0,7,17,24}; int i,j,k,l; while (1) { int oddelovac = 0; for (i = 0; i < 4; i++) for (j = 0; j < 10; j++) moznosti[i][j] = 1; for (i = 0; i < 7; i++) { int ln = readline(buffer); if ((i == 2) || (i == 4)) { if ( (buffer[14] == '.') || (buffer[14] == 'o')) oddelovac++; } if (buffer[0] == 'e') goto end; /* konec */ /* cifra */ for (j = 0; j < 4; j++) { /* pozice */ for (k = 0; k < 5; k++) { if (buffer[offset[j]+k] != '.') { /* vyskrtam neplatne */ for (l = 0; l < 10; l++) { if (buffer[offset[j]+k] != cisl[l][i][k]) moznosti[j][l] = 0; } } } } } if (oddelovac != 2) goto fail; readline(buffer); readline(buffer); int moznglob; int prvni1 = 0; int prvni2 = 0; int prvni = 0; int h,m; int mozn; for (i = 0; i < 2; i++) { mozn = 0; for (j = 0; j < 10; j++) { if (i == 0) { mozn = -1; if ((j >= 0) && (j < 2) && moznosti[i][j]) { prvni1 += j+1; if (prvni1 == 3) goto fail; prvni = j; } if ((j == 2) && moznosti[i][j]) { prvni2 = 1; } } if (i == 1) { if (prvni2 && moznosti[i][j] && (j < 4)) { if (prvni1) goto fail; else { mozn++; prvni = 2; h = j; } } if (prvni1 && moznosti[i][j]) { mozn++; prvni = prvni1; h = j; } } } if (mozn>=0) { if ((mozn>1) || (mozn==0)) goto fail; else { h += prvni*10; } } } mozn = 0; for (j = 0; j < 6; j++) { if (moznosti[2][j]) { m = j*10; mozn++; } } if ((mozn>1) || (mozn==0)) goto fail; mozn = 0; for (j = 0; j < 10; j++) { if (moznosti[3][j]) { m += j; mozn++; } } if ((mozn>1) || (mozn==0)) goto fail; printf("%2i:%2i\n", h, m); goto next; fail: printf("ambiguous\n"); next:; } end: printf("end\n"); return 0; }