Cod sursa(job #273094)

Utilizator raduzerRadu Zernoveanu raduzer Data 8 martie 2009 03:02:20
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>

using namespace std;

int k, x, y, sol;

int proc(int k, int x, int y) 
{
	int l = (1 << (k - 1));
	if (k == 1) 
	{
		if (x == 1 && y == 2) return 4;
		return x + y - 1;
	}
	
	if (x <= l && y <= l) return proc(k - 1, y, x);
	if (x > l && y <= l) return proc(k - 1, x - l, y) + l * l;
	if (x > l && y > l) return proc(k - 1, x - l, y - l) + 2 * l * l;
	return proc(k - 1, l - (y - l) + 1, l - x + 1) + 3 * l * l;
}

int main()
{
	freopen("fractal.in", "r", stdin);
	freopen("fractal.out", "w", stdout);

	scanf("%d%d%d", &k, &y, &x);
	printf("%d\n", proc(k, x, y) - 1);
}