#include using namespace std; char input[4][7][5]; char nula[7][5] = {{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+',' ',' ',' ','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'}}; char jedna[7][5] = {{' ',' ',' ',' ','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'}, {' ',' ',' ',' ','+'}}; char dva[7][5] = {{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'},{'|',' ',' ',' ',' '},{'|',' ',' ',' ',' '},{'+','-','-','-','+'}}; char tri[7][5] = {{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'}}; char ctyri[7][5] = {{'+',' ',' ',' ','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','+'}}; char pet[7][5] = {{'+','-','-','-','+'},{'|',' ',' ',' ',' '},{'|',' ',' ',' ',' '},{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'}}; char sest[7][5] = {{'+','-','-','-','+'},{'|',' ',' ',' ',' '},{'|',' ',' ',' ',' '},{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'}}; char sedm[7][5] = {{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','+'}}; char osm[7][5] = {{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'}}; char devet[7][5] = {{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'}}; int isDefinitive(int digit){ int podezreni[10] = {1,1,1,1,1,1,1,1,1,1}; for(int radek=0;radek<7;radek++) { for(int a=0;a<5;a++) if(input[digit][radek][a]!='.') { if(input[digit][radek][a]!=nula[radek][a]) podezreni[0] = 0; if(input[digit][radek][a]!=jedna[radek][a]) podezreni[1] = 0; if(input[digit][radek][a]!=dva[radek][a]) podezreni[2] = 0; if(input[digit][radek][a]!=tri[radek][a]) podezreni[3] = 0; if(input[digit][radek][a]!=ctyri[radek][a]) podezreni[4] = 0; if(input[digit][radek][a]!=pet[radek][a]) podezreni[5] = 0; if(input[digit][radek][a]!=sest[radek][a]) podezreni[6] = 0; if(input[digit][radek][a]!=sedm[radek][a]) podezreni[7] = 0; if(input[digit][radek][a]!=osm[radek][a]) podezreni[8] = 0; if(input[digit][radek][a]!=devet[radek][a]) podezreni[9] = 0; } } int pocetRes = 0, index = 0; for(int a=0;a<10;a++) if(podezreni[a]) { pocetRes++; index = a; } if(pocetRes==1) return index; return 10; } void vypis(){ bool valid = true; int digits[4]; for(int a=0;a<4;a++) { int cislo = isDefinitive(a); if(cislo>9) { valid=false; printf("ambiguous\n"); break; } else digits[a] = cislo; } if(valid) printf("%d%d:%d%d\n",digits[0],digits[1],digits[2],digits[3]); } int main(){ char mem='a'; while(mem!='e') { if(mem==EOF) break; for(int a=0;a<7;a++) { for(int b=0;b<5;b++) input[0][a][b] = getchar(); if(input[0][0][0]=='e') break; mem = getchar(); mem = getchar(); for(int b=0;b<5;b++) input[1][a][b] = getchar(); mem = getchar(); mem = getchar(); mem = getchar(); mem = getchar(); mem = getchar(); for(int b=0;b<5;b++) input[2][a][b] = getchar(); mem = getchar(); mem = getchar(); for(int b=0;b<5;b++) input[3][a][b] = getchar(); mem = getchar(); } if(input[0][0][0]=='e') break; vypis(); mem = getchar(); mem = getchar(); } printf("end\n"); return 0; }