#include char buf[8][6]; char vzor[8][50]; void doseg( int seg) { bool zv=true; int sx,sy,ex,ey; switch (seg) { case 1 : sx=0;sy=0; ex=0;ey=3; break; case 2 : sx=0;sy=3; ex=0;ey=6; break; case 6 : sx=4;sy=0; ex=4; ey=3; break; case 7 : sx=4;sy=3; ex=4; ey=6; break; case 3 : sx=0;sy=6; ex=4;ey=6; zv = false; break; case 4 : sx=0;sy=3; ex=4;ey=3; zv = false; break; case 5 : sx=0;sy=0; ex=4;ey=0; zv = false; break; } buf[sy][sx]='+'; buf[ey][ex]='+'; if (zv) { for (int i=0;i<2;i++) buf[sy+1+i][sx]='|'; } else { for (int i=0;i<3;i++) buf[sy][sx+1+i]='-'; } } void dodig(int c) { for (int y=0;y<7;y++) for (int x=0;x<5;x++) buf[y][x]=' '; switch (c) { case 0 : doseg(1); doseg(2); doseg(3); doseg(5); doseg(6); doseg(7); break; case 1 : doseg(6); doseg(7); break; case 2 : doseg(2); doseg(3); doseg(4); doseg(5); doseg(6); break; case 3 : doseg(3); doseg(4); doseg(5); doseg(6); doseg(7); break; case 4 : doseg(1); doseg(4); doseg(6); doseg(7); break; case 5 : doseg(1); doseg(3); doseg(4); doseg(5); doseg(7); break; case 6 : doseg(1); doseg(2); doseg(3); doseg(4); doseg(5); doseg(7); break; case 7 : doseg(5); doseg(6); doseg(7); break; case 8 : doseg(1); doseg(2); doseg(3); doseg(4); doseg(5); doseg(6); doseg(7); break; case 9 : doseg(1); doseg(3); doseg(4); doseg(5); doseg(6); doseg(7); break; } } bool checkdig(int j,int i) { dodig(i); // nakresli do buf /* printf("testujem na pozicii %d ci je %d\n",j,i); for (int y=0;y<7;y++){ for (int x=0;x<5;x++) { putchar(vzor[y][x+j]); } putchar('\n'); } */ for (int y=0;y<7;y++) for (int x=0;x<5;x++) { char vz=vzor[y][x+j]; char bf=buf[y][x]; if (vz==bf) continue; if (vz==' ' && bf!=' ') return false; if (vz!=' ' && vz!='.' && bf==' ') return false; } // printf(">>>ANO<<<<\n"); return true; } void writetime() { #define nie {printf("ambiguous\n"); return;} int hh1,hh2=-1; bool start0,start1,start2; // desiatky hodin start0=checkdig(0,0); start1=checkdig(0,1); start2=checkdig(0,2); if (!start0 && !start1 && start2) { hh1=2; for (int i=0;i<4;i++) { if (checkdig(7,i)) { if (hh2!=-1) nie else hh2=i; } } } if (start0 && start1) nie if ( ((start0 && !start1) || (!start0 && start1)) && !start2) { if (start0) hh1=0; else hh1=1; for (int i=0;i<10;i++) { if (checkdig(7,i)) { if (hh2!=-1) nie else hh2=i; } } } if ( ((start0 && !start1) || (!start0 && start1)) && start2) { for (int i=0;i<4;i++) { if (checkdig(7,i)) { if (hh2!=-1) nie else hh2=i; } } if (hh2!=-1) nie if (start0) hh1=0; else hh1=1; for (int i=4;i<10;i++) { if (checkdig(7,i)) { if (hh2!=-1) nie else hh2=i; } } } // ------------ minuty ------- int mm1=-1,mm2=-1; // desiatky minut for (int i=0;i<6;i++) { if (checkdig(17,i)) { if (mm1!=-1) nie else mm1=i; } } // minuty for (int i=0;i<10;i++) { if (checkdig(24,i)) { if (mm2!=-1) nie else mm2=i; } } printf("%d%d:%d%d\n",hh1,hh2,mm1,mm2); } int main() { while (true) { for (int i=0;i<7;i++) { fgets(vzor[i],40,stdin); if (vzor[0][0]=='e') { printf("end\n"); return 0; } } char tmp[41]; fgets(tmp,40,stdin); fgets(tmp,40,stdin); writetime(); } }