#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] = {{'+','-','-','-','+'},{'|',' ',' ',' ','|'},{'|',' ',' ',' ','|'},{'+','-','-','-','+'},{' ',' ',' ',' ','|'},{' ',' ',' ',' ','|'},{'+','-','-','-','+'}}; bool jeRovna(int digit, int compareD){ for(int radek=0;radek<7;radek++) { for(int a=0;a<5;a++) if(input[digit][radek][a]!='.') { if(compareD==0) if(input[digit][radek][a]!=nula[radek][a]) return false; if(compareD==1) if(input[digit][radek][a]!=jedna[radek][a]) return false; if(compareD==2) if(input[digit][radek][a]!=dva[radek][a]) return false; if(compareD==3) if(input[digit][radek][a]!=tri[radek][a]) return false; if(compareD==4) if(input[digit][radek][a]!=ctyri[radek][a]) return false; if(compareD==5) if(input[digit][radek][a]!=pet[radek][a]) return false; if(compareD==6) if(input[digit][radek][a]!=sest[radek][a]) return false; if(compareD==7) if(input[digit][radek][a]!=sedm[radek][a]) return false; if(compareD==8) if(input[digit][radek][a]!=osm[radek][a]) return false; if(compareD==9) if(input[digit][radek][a]!=devet[radek][a]) return false; } } return true; } 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,limit = 10; if(digit==0) limit = 3; else if(digit==2) limit = 6; for(int a=0;a9) { if(a==0&&isDefinitive(a+1)) { if((jeRovna(a,1)+jeRovna(a,2)+jeRovna(a,0))==2) { if((jeRovna(a+1,4)||jeRovna(a+1,5)||jeRovna(a+1,6)||jeRovna(a+1,7)||jeRovna(a+1,8)||jeRovna(a+1,9))) { if(jeRovna(a,2)) { if(jeRovna(a,0)) digits[a] = 0; else digits[a] = 1; } else { valid=false; printf("ambiguous\n"); break; } } else { valid=false; printf("ambiguous\n"); break; } } else { valid=false; printf("ambiguous\n"); break; } } else { 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; }