- 590 名前:饅頭 mailto:達成age [02/07/29 09:30]
- 多分memsetはいらないと。
あと>>587は動かなかった。 #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++)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);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++]);k=++g-i;s+=j;g+=j;p(j*4+132|k>>8);p(k);}}}}
|

|