#include #define BUFFER_SIZE 0x20000 static int m = 0x1ffff, f, e, r, l[BUFFER_SIZE], I[BUFFER_SIZE], n, t, X, x, Y, y, Z, p, q, i, z; #define D(d) ,#d static char *h[] = { ",", "Pzoltraak" D( ZifndefN U U VPpPT(I=1+_): VPqPp(i=3M--R(jM*o--)): VPrP__LI~NE__Q jmp_bufPj;intPsMiMIMlMk[999]={1<<30}M*o=k; voidPa(intP_){i%2?YiMpP_%9?T(s|=1<<(_-I)):_-I-17?(putchar(s^32)MY*o)?q(l=s%256+3Ms=s/512+3Mi)?(*o-=l)>0?s=i=0Mq((o[2]=*o 32 ) i > 76 && i < 91 ? B(h[i - 77]) : (void)putchar(i - 126 ? i : *++a); } static int b(int a) { return a ? a % 2 + b(a / 2) : 0; } int main(int a, char **A) { for(B(h[2]);;) { while( r - e < m / 2 && (i = getchar()) - EOF ) j[r++ & m] = i; if( e == r ) break; while( f < e && ((i = l[f & m]) < 0 || n - i > 256) ) { f++; } t = e - f; Z = -1; for(i = 0; i < t; i++) if( (y = l[(x = f + i) & m]) >= 0 ) { for(z = 0; z < 258 && e + z < r && j[(x + z) & m] == j[(e + z) & m] && ( (p = x + z - e) < 0 ? I[(x + z) & m] : (q = e - x, I[(x + p % q) & m] + 2 * p / q) ) < 998; z++) { } if( z > Z || (z == Z && b(n - y - 1) < b(n - Y - 1)) ) X = x, Y = y, Z = z; } if( Z > 2 ) { for(i = 0; i < Z; l[z] = i++ > 0 ? -1 : n) { I[z = e++ & m] = I[(X + i) & m] + 2; } z = (Z - 3) | ((n - Y - 1) << 9) | (1 << 17); n += 2; } else { l[i = e++ & m] = n++; I[i] = 1; z = (j[i] & 255) ^ 288; } for(; z; z /= 2) puts(h[z & 1] + 1); } return 0; }