Pagini recente » Cod sursa (job #40351) | Cod sursa (job #14435) | Cod sursa (job #2986352) | Cod sursa (job #13547) | Cod sursa (job #2975136)
#include <bits/stdc++.h>
using namespace std;
int hilbert (int k, int x, int y) {
int ans = 0;
for (int i = k >> 1; i; i >>= 1) {
bool rx = x & i, ry = y & i;
ans += i * i * ((3 * rx) ^ ry);
if (!ry) {
if (rx) {
x = k - 1 - x;
y = k - 1 - y;
}
swap(x, y);
}
}
return ans;
}
int main() {
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
fin >> k >> x >> y;
fout << hilbert(1 << k, x - 1, y - 1) << '\n';
}