- 585 名前:580 mailto:sage [02/07/28 18:17]
- 意外と縮むようで、縮まない。後21文字
#include <stdio.h> int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d=0;main(int i){ if(i>1){for(l=getw(stdin),d=malloc(l+8);s<l;)for(g=m=q(),m>n?k=q()|g-128<<8,m=k >>10:0;m--;s++)d[s]=g>n?d[s-(k&f)]:q();for(;l--;)p(*d++);}else{for(;~(s=q());d[ l++]=s)d=realloc(d,l+9);putw(l,stdout);memset(d+l,0,8);for(l+=8;s<l-3;s++){for( m=j=l-s-2>31?31:l-s;m&&j>2;j--)for(i=s<f?0:s-f;m&&i<s;)m=memcmp(d+i++,d+s,j);if (!m){for(k=s-g;k;)for(p(m=k>n?n:k);m--;k--)p(d[g++]);p(++j*4+128|(k=s-i+1)>>8); p(k);g+=j;s=g-1;}}}}
|

|