Pagini recente » Cod sursa (job #2711033) | Cod sursa (job #1852537) | Cod sursa (job #1894342) | Cod sursa (job #1236539) | Cod sursa (job #1324951)
#include <algorithm>
#include <fstream>
#include <iostream>
using namespace std;
inline int solve(int k, int x, int y) {
if (k == 0) {
return 0;
}
-- k;
if (x <= (1 << k) && y <= (1 << k)) {
return solve(k, y, x);
}
if (x <= (1 << k)) {
return 3 * (1 << (2 * k)) + solve(k, 2 * (1 << k) - y + 1, (1 << k) - x + 1);
}
if (y <= (1 << k)) {
return (1 << (2 * k)) + solve(k, x - (1 << k), y);
}
return 2 * (1 << (2 * k)) + solve(k, x - (1 << k), y - (1 << k));
}
int main() {
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
fin >> k >> x >> y;
fout << solve(k, y, x) << "\n";
return 0;
}