- 544 名前:七誌饅頭 mailto:sage [02/07/23 23:10]
- #include <stdio.h>
size_t l,r=~0,z,q,e,u[257],f[257],c=5,x=256;main(int g,char**v){FILE*n=fopen(v [2],"rb"),*o=fopen(v[3],"wb");g=*v[1]-69;for(g&&fread(f,4,x,n);g?--c:~(c=getc( n));)g?e=e*x|getc(n):f[c]++;g||(fwrite(f,4,x,o),fseek(n,c=0,0));for(;c<x;c++)z +=f[c],f[c]>=x?f[c]=255:0,q=u[c+1]=q+f[c];for(;g?z--:~(c=getc(n));){r/=q;if(g) {for(c=x;--c&&(e-l)/r<u[c];);putc(c,o);}for(l+=u[c]*r,r*=f[c];(l^l+r)<1<<24||r <x*x&&(r=-l&65535);)g?e=e*x|getc(n):putc(l>>24,o),r*=x,l*=x;}for(c=4;!g&&c--;) putc(l>>c*8,o);} どうも頭が固いな。
|

|