Cod sursa(job #1872507)

Utilizator doc2177Dorian Croitoru doc2177 Data 8 februarie 2017 12:34:37
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;

int ans(int k, int x, int y) {
	if (k==1) {
		if (x+y==2) return 0;
		if (x+y==4) return 2;
		if (x==1 and y==2) return 1;
		return 3;
	}
	const int n = 1<<(k-1);
	if (x<=n and y<=n) return ans(k-1, y, x);
	if (x<=n and y> n) return n*n + ans(k-1, x, y-n);
	if (x> n and y> n) return 2*n*n + ans(k-1, x-n, y-n);
	if (x> n and y<=n) return 3*n*n + ans(k-1, n-y+1, 2*n-x+1);  
}  

int main() {

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

int k,x,y;
cin >> k >> x >> y;
cout << ans(k, x, y) << endl;
 
return 0;
}