Pagini recente » Cod sursa (job #3030735) | Cod sursa (job #1278030) | Rating Nicolae Ursu (NicuIT) | Cod sursa (job #1012808) | Cod sursa (job #2631712)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int n, x, y;
int fractal (int n, int x, int y) {
if (n == 1) {
if (x == 1 && y == 2)
return 3;
if (x == 2 && y == 1)
return 1;
if (x == 2 && y == 2)
return 2;
return 0;
}
int aria = (1 << 2 * (n - 1));
int mij = (1 << (n - 1));
if (x <= mij && y <= mij)
return fractal(n - 1, y, x);
if (x > mij && y <= mij)
return aria + fractal(n - 1, x - mij, y);
if (x > mij && y > mij)
return 2 * aria + fractal(n - 1, x - mij, y - mij);
if (x <= mij && y > mij)
return 3 * aria + fractal(n - 1, (1 << n) - y + 1, mij - x + 1);
}
int main()
{
cin >> n >> y >> x;
cout << fractal (n, x, y);
return 0;
}