Pagini recente » Cod sursa (job #2248316) | Cod sursa (job #2762260) | Cod sursa (job #2273826) | Cod sursa (job #1654133) | Cod sursa (job #1872507)
#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;
}