#define no return /*UtaKata/2004*/#include /*c=27f5a94f/s=4428^^*/#include typedef double s;typedef int _;typedef unsigned char W;FILE*f;W*M,*X,*m,*x,y;char*t[4]={"....r\145" "ad\40error","\56\56\56\56write\40error\0'.......","inva" "lid\40image","out\40of\40memory"},e[/*W;4T........*/64];s V,v,w ,R,G,B,r,g,b,_o=255.,MA,N,a,T,S,U;_/*F'.........*/I,C,H,i,K,A,ta,n;_ c(){N=U=r;if(N>g)N=g;if(Ub)N=b;if(UI-C||!(k%C)||!((k+1) %C))no 1;r=(s)*(X+k*3)/_o;g=(s)*(X+k*3+1)/_o ;b=(s)*(X+k*3+2)/_o;c();no ((.3< V&&V< .45)||4.3\40\n",* d);K=C=0;d++;if (!( f =fopen(( * d) ,"rb")))no-q();X=0;if(r0((W*)e,64)-1)no+q();K+=2 ;if(*e==66&&'M' ==e[ 1 ] ){if( *( _ *)(e+28)- 24)no q();C=*(_*)(e+18);H=*(_*)(e+22);ta= (4-((C*3)&3))& 3;n= 54;}else if(80==* e&&e[1 ]==54){for(i=A=n=0;i<63;i++)if(10==e [i])if(++A==3) {e[n= ++i]=0 ;i=64;} if(sscanf (e,"P6\n%d %d\n",&C,&H)-2||!n)no+q(); ta=0;}if(C<16 ||H<9 )no-q(); K++;if(!(X= (W*)malloc((I=C*H)*3)))no-q();fseek(f,n, i=0);for(x=X;i =6)V-=6;if((w+=.7)>1)w=1;if ((v +=.1)>1)v=1 ;K=(_)V;MA=V- (s) K;N=v*(1- w);U=v*(1-w*MA);a=v*(1-w*(1-MA));r=( K <4)?(K<2)?K? U:v:N:(K>4)? v: a;g=(K<3)?K?v:a:K>3?N:U;b=(K<3)?(K >1)?a:N:(K> 4)?U:v;r=R *S +r*T;g=R*S+g*T;b=R*S+b*T;*x=(W)(r *_o);x[1]=(W) (g*_o);x[2]=(W)(b*_o);}x+=3;++ m;}free(M);if (*e!='P')P();K=1;if(!(f = fopen( *++ d,"wb+")))no+q( ) ;x=(W*) e;O ();n=C*3;x=X;for(A=0; A