#include #include char vz[100][4][7]; int delmi[100]; int delma[100]; int nvz; char mozn[100][24*60]; int hld[101]; int poss[100][24*60]; /*int tcnv(int h, int m) { return 60*h+m; }*/ int jmoz(int vz, int h, int m) { } int nznk() { int c; while(1) { c=getc(stdin); if (c=='.' || c=='-' || c=='|' || c=='?') return c; } } int gznak(int seg) { switch (seg) { case 1: case 5: case 6: case 13: case 17: case 18: case 25: return 0; case 2: case 7: case 8: case 14: case 19: case 20: case 26: return 1; case 3: case 9: case 10: case 15: case 21: case 22: case 27: return 2; case 4: case 11: case 12: case 16: case 23: case 24: case 28: return 3; default: abort(); } } int gseg(int seg) { switch(seg){ case 1: case 2: case 3: case 4: return 0; case 5: case 7: case 9: case 11: return 1; case 6: case 8: case 10: case 12: return 2; case 13: case 14: case 15: case 16: return 3; case 17: case 19: case 21: case 23: return 4; case 18: case 20: case 22: case 24: return 5; case 25: case 26: case 27: case 28: return 6; default: abort(); } } char testc(int vzn, int zn, int n) { int cisla[10][7] = { { 1, 1, 1, 0, 1, 1, 1 }, { 0, 0, 1, 0, 0, 1, 0 }, { 1, 0, 1, 1, 1, 0, 1 }, { 1, 0, 1, 1, 0, 1, 1 }, { 0, 1, 1, 1, 0, 1, 0 }, { 1, 1, 0, 1, 0, 1, 1 }, { 1, 1, 0, 1, 1, 1, 1 }, { 1, 0, 1, 0, 0, 1, 0 }, { 1, 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 0, 1, 1 } }; int i; for (i=0; i<7; i++) { if (vz[vzn][zn][i] != 2 && vz[vzn][zn][i] != cisla[n][i]) { /* printf("[%d %d %d] ! %d\n", vzn, zn, n, i); printf("%d %d\n", vz[vzn][zn][i], cisla[n][i]);*/ return 0; } } return 1; } int testcas(int vzn, int ti) { int h = ti/60; int m = ti%60; int i; int c[4]; c[0] = h/10; c[1] = h%10; c[2] = m/10; c[3] = m%10; // printf("[%d,%d,%d,%d]\n", c[0], c[1], c[2], c[3]); // printf("%d", mozn[vzn][ti]); if (mozn[vzn][ti] != 2) return mozn[vzn][ti]; for (i=0; i<4; i++) { if (testc(vzn, i, c[i]) == 0) { mozn[vzn][ti] = 0; // printf("! %d\n", i); return 0; } } mozn[vzn][ti] = 1; return 1; } int hl(int cvz) { int i, j, i2; int start, stop; if (cvz==0) { start=0; stop=24*60; } else { start = hld[cvz-1] + delmi[cvz]; stop = hld[cvz-1] + delma[cvz] + 1; } // if (start>=24*60) // start=24*60-1; // if (stop>24*60) // stop=24*60; for (i2=start; i2 %d:%d\n", i, i/60, i%60); // } hl(0); for (i=0; i1) printf("ambiguous, %d possibilities\n", tin); else printf("%d:%02d\n", ti/60, ti%60); } } int main(void) { int dh, dm; int i, j; char bf, r; while(1) { scanf("%d\n", &nvz); if (nvz==0) break; for (i=0; i