- 592 名前:饅頭 mailto:sage [02/07/29 18:58]
- どうせなのでもう少し削っておきました。
#include <stdio.h> int(*p)()=putchar,(*q)()=getchar,f=1023,g,j,k,l,m,n=127,s;char*d;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++)p(d[s]=g>n?d[s-(k&f)]:q());else{for(;~(s=q());d[l++]=s)d=realloc(d ,l+9);putw(l,stdout);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);s=(g+=j)-1;}}}}
|

|