Cod sursa(job #465499)

Utilizator mihai995mihai995 mihai995 Data 24 iunie 2010 14:40:14
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

ifstream in("fractal.in");
ofstream out("fractal.out");

int find(int x,int y)
{
	if (x==1)
		return (y==2);
	return 2+(y==1);
}

int fractal(int step,int x,int y)
{
	if (step==4)
		return find(x,y);
	int cmp=step>>3;
	if (x<=cmp)
	{
		if (y<=cmp)
			return fractal(cmp<<1,y,x);
		return (cmp<<1)+fractal(cmp<<1,x,y-cmp);
	}
	x-=cmp;
	if (y<=cmp)
		return 3*(cmp<<1)+fractal(cmp<<1,cmp-x,y);
	return (step>>1)+fractal(cmp<<1,x,y-cmp);
}

int main()
{
	int k,x,y;
	in>>k>>x>>y;
	out<<fractal(1<<(k<<1),x,y)<<'\n';
	return 0;
}