Pagini recente » Cod sursa (job #3287090) | Cod sursa (job #3285757) | Rating OHYEAHYEAH (MAXIMILLIANMUS) | Cod sursa (job #3289413) | Cod sursa (job #3290356)
#include <iostream>
#include <fstream>
#include <vector>
#include <limits.h>
using namespace std;
int fractal(int n, int y, int x) {
if (n == 0)
return 0;
int half = 1 << (n - 1);
int cadran = half * half;
// stanga jos
// cout << "Linia: " << y << ", " << "Coloana " << x << ' ' << half << '\n';
if (y > half && x <= half) {
// cout << "Stanga jos\n";
return cadran + fractal(n - 1, y - half, x);
} else if (y > half && x > half) {
// cout << "Dreapta jos\n";
return 2 * cadran + fractal(n - 1, x - half, y - half);
} else if (y <= half && x > half) {
// cout << "Dreapta sus\n";
return 3 * cadran + fractal(n - 1, y, x - half);
}
// cout << "Stanga sus\n";
return fractal(n - 1, x, y);
}
int main()
{
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
fin >> k >> x >> y;
fout << fractal(k, y, x) << '\n';
return 0;
}