/* preprocess 4 - compress - Don Yang (uguu.org) 02/19/00 */ #define f for( #define p printf( int b[1024], x, y, z, i, j, k, l, r, s = 5, u[8] = { 1, 1, 1, 0, -1, -1, -1, 0}, v[8] = {-32, 0, 32, 32, 32, 0,-32,-32}, w[32] = { 2, 14, 70, 199, 799, 2, 8, 28, 90, 799, 2, 2, 4, 10, 799, 4, 18, 94, 348, 999, 2, 10, 44, 220, 999, 2, 2, 4, 10, 999 }, n[1024], m, t, c; q() { f x = j = 132; x < 924 && j - 5; x++) if( (z = b[x]) - 46 ) f y = 0; y < 4 && j - 5; y++) f i = j = 1; i < 5 && j < 5; j += b[x + (u[y] + v[y]) * i++] - z ? 0 : 1); return j - 5; } o() { f x = !p "\n "); x < s; p "%c ", 97 + x++)); f y = 0; y < s;) f x = !p "\n%2d ", ++y); x < s; p "%c ", b[(y + 3) * 32 + 4 + x++])); } e() { if( s < 24 ) f i = l = 0; i < 2; i++) f j = 0; j < s; j++) { if( b[(i + 4) * 32 + j + 4] - 46 ) f k = l = 1023; k > 131; b[k--] = b[k - 33]); if( b[(j + 4) * 32 + s - i + 3] - 46 ) f k = l = 1023; k > 131; b[k--] = b[k - 32]); if( b[33 * s - 32 * i - j + 99] - 46 ) l = 1; if( b[(s - j + 3) * 32 + i + 4] - 46 ) f k = l = 1023; k > 131; b[k--] = b[k - 1]); if( l ) { s++; e(); return; } } } main() { f x = 0; x < 1024; b[x++] = 46); f w[(r = time(0)) & 31]++; q();) { e(); o(); p "\n\n%% "); scanf(" %c%d", &x, &y); b[(y + 3) * 32 + (x | 32) - 93] = 120; f r += x; r < 0; r = -r); if( q() ) { e(); t = m = 0; f x = 132; x < 924; x++) if( x % 32 > 3 && x % 32 < 28 && b[x] == 46 ) { c = 0; f y = 111; y < 121; y += 9) { b[x] = y; f z = 0; z < 8; z++) { f l = x - (j = u[z] + v[z]); b[l] == y; l -= j); k = b[l] - 46 ? 5 : 0; f i = 0; b[l += j] == y && i < 5; i++); c += w[ (y - 120 ? 15 : 0) + k +( b[l] - 46 ? 4 : -1) + i]; } } b[x] = 46; if( c > t ) { t = c; m = 0; } if( c == t ) n[m++] = x; } b[n[r % m]] = 111; } } x--; y--; f i = 0; i < 5; b[x + (u[y] + v[y]) * i++] &= -33); o(); p "\nYou %s\n", z == 120 ? "win" : "lose"); }