Pagini recente » Cod sursa (job #2622138) | Cod sursa (job #3036917) | Cod sursa (job #1307388) | Cod sursa (job #3327822) | Cod sursa (job #3341456)
#include <bits/stdc++.h>
using namespace std;
long long solve(int k, long long x, long long y) {
if (k == 0) return 0;
long long half = 1LL << (k - 1);
long long block = 1LL << (2 * (k - 1));
if (x <= half && y <= half)
return solve(k - 1, y, x);
else if (x <= half && y > half)
return block + solve(k - 1, x, y - half);
else if (x > half && y > half)
return 2 * block + solve(k - 1, x - half, y - half);
return 3 * block + solve(k - 1, half - y + 1, 2 * half - x + 1);
}
int main() {
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int K;
long long x, y;
fin >> K >> x >> y;
fout << solve(K, x, y);
return 0;
}