Pagini recente » Cod sursa (job #1352602) | Cod sursa (job #1092782) | Cod sursa (job #2814594) | Cod sursa (job #1629842) | Cod sursa (job #2486842)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("fractal.in");
ofstream out("fractal.out");
int fractal(int x, int y, int n, int colt1) {
if (n == 0) {
return 0;
}
int mid = 1 << (n - 1), quad_sum = 1 << (2 * (n - 1));
if (x <= mid) {
if (y <= mid)
return fractal(y, x, n - 1, colt1);
else
return fractal(mid + 1 - (y - mid), mid + 1 - x, n - 1, colt1) + 3 * quad_sum;
}
else if (y <= mid) {
return fractal(x - mid, y, n - 1, colt1) + quad_sum;
}
else {
return fractal(x - mid, y - mid, n - 1, colt1) + 2 * quad_sum;
}
}
int main() {
int k, x, y;
in >> k >> x >> y;
out << fractal(y, x, k, 0) << '\n';
return 0;
}