Cod sursa(job #497312)

Utilizator drywaterLazar Vlad drywater Data 2 noiembrie 2010 09:06:48
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
FILE *f=fopen("fractal.in","r"),*g=fopen("fractal.out","w");
int x,y,k;
int sol(int k,int x,int y)
{
	int xn=0,yn=0,z=0;
	if (k==0) return 0;
	k--;
	if (x>(1<<k) && y>(1<<k)) z=2;
	if (x>(1<<k) && y<=(1<<k)) z=1;
	if (x<=(1<<k)&& y>(1<<k)) z=3;
	x%=(1<<k);
	y%=(1<<k);
	if (x==0) x=(1<<k);
	if (y==0) y=(1<<k);
	if (z==0) {xn=y; yn=x; x=xn; y=yn;}
	if (z==3) {xn=(1<<k)-y+1; yn=(1<<k)-x+1; x=xn; y=yn;}
	return z*(1<<k)*(1<<k)+sol(k,x,y);
}
	
int main(void)
{
	fscanf(f,"%d%d%d",&k,&x,&y);
	fprintf(g,"%d",sol(k,x,y));
	fclose(g);
	return 0;
}