Cod sursa(job #744587)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 9 mai 2012 10:10:33
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<iostream>
#include<fstream>

using namespace std;

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

int solve(int k, int x, int y)
{
	if(!k) return 0;
	int s = 1 << (k - 1);
	bool up = (y <= s);
	bool left = (x <= s);
	
	if(!up) y -= s;
	if(!left) x -= s;
	
	if(up & left)
		return solve(k - 1, y, x);
	else
		if(!up & left)
			return s * s + solve(k - 1, x, y);
		else
			if(!up)
				return 2 * s * s + solve(k - 1, x, y);
			else
				return 3 * s * s + solve(k - 1, s + 1 - y, s + 1 - x);
}

int main()
{
	int k, x, y;
	
	in >> k >> x >> y;
	
	out << solve(k, x, y);
	
	return 0;
}