#include<stdio.h> # include <time.h> /* ,*/# include <stdlib.h> /* o*/ typedef char*l;typedef int L;L _, D,e,A,T,H,N,O,t,E ; L X(l o){return(L)(*o+=((*o>64&&*o<91)?32:0) );} typedef union{l I;L i;}h;typedef/*L*/void P;l x,y;FILE*f;typedef struct {L i,g;h*t;}v;v V[26],w;L s (l d){for(D=0;*d++;D++);return D;}P p(L o){putchar(o );}P k (L o){fseek(f,0,o);}P F(P*o){free(o);}P S(v*o,l d){h* a,*b,*c;D=sizeof(h);if(! o->t)o->t=(h*)malloc(( o->g=32)*D);if(o->t&&o-> i +1>o->g){if((a=c=(h *)malloc((o->g*2)*D))){b =o->t;for(D=o ->i;-D--;a++->i=b++ ->i);F(o->t) ; o->t=c;o -> g*=2;}}if(o->t)o->t[o->i++] .I=d;}P q(l/**/o ){for(;*o ;p(*o++));}P R(v*l){l->t=(h *)0;l->i=l->g=0;}P Z( v*o){if(o-> t)F(o->t);}P z(l a,l b){for (N=0;*a&&*b&&*a==*b;a++,b ++,N++);}P Q( P){fclose(f);}L main(L u,l * U){l a="fopen error\n";if(u< 2){;q("<file> [width] [...]\n");}else{if( ( f=fopen(U[01], "rb"))){k(2);_= ftell(f);if(_>9&&(y=(l)malloc (_+1))){k(0) ; y[fread(y ,1,_,f) ]=0;Q();;for( e=0;e<26;R(&V[e++]));R(&w);for( x=y;_ --;*(x++)= 0){if((* x>64&&*x<91) ||(*x>96&&*x<123)){S(&(V[X(x)- 97] ),(l)w .i);for(S( &w ,x);_--?(*x>64&&*x<91)||(*x>96&&*x<123)||(*x >47 &&58>* x):0 ;x++)X (x);_ ++;}}if((_=(u>2)?atoi(U[2]):80)<1)_=80;if( u> 3){++x; for( srand( time( 0)) ;u-->3;){p(10);t=s(x=U[u]);for( e=0 ;e <t; e++ )X(x+e);q(x);for(E= _-1-s(U[u-1]);t<E;t+=1+s(x)){for(A= e=0 ;! A | (t +1+s (w.t[e].I)>=_) /* ooo `*/;){O=*x-97;e=rand()%w.i;A = O > - 1?O </* o888 */26 :0;if(A /* 8888b */){if(V[O].i){z(x,w.t[e=V[ O ] .t[rand(/* 88888 */)% V/* 9 88888 */[O].i].i].I);H=N; for( A =0;A<V[O]/*9888P x */. /* 9888 */i/2;A++){T=V[O].t[ rand ()%V[O].i] .i;z(x , w. t [T].I) ;if(-N<-H){H=N;e=T ;}} e= (e+1/* "" ( */)%w.i;}}}p(32);q (x =w .t[e]. I );}}}else{t=_;for( e= 0; e<w.i ; ++e){if(_>(s(w.t[ e ] .I)+1+ t )){p(32);t++;}else {p (10) ; t =0;}q(w.t [e].I) ; t+=s( w.t[e].I); }}e=0 ; p(10) ;p(10 );; for( ;26 > e;Z (& V[e ++ ]) , 0);Z(& w ); F (y) ;} if ( ! y ) {Q ( ) ; } } if ( ! f ){ q(a );}} return-0;} |