Pagini recente » Cod sursa (job #3337576) | Cod sursa (job #3131242) | Cod sursa (job #2048276) | Cod sursa (job #3036888) | Cod sursa (job #3319667)
#include <fstream>
using namespace std;
ifstream fin("fractali.in");
ofstream fout("fractali.out");
int k, x, y;
/// dir = 0 --> S
/// dir = 1 --> E
/// dir = 2 --> N
/// dir = 3 --> V
int solve(int k, int x, int y) {
if (k == 0) {
return 0;
}
int mid = (1 << (k - 1));
int value = (1 << (2 * (k - 1)));
if (x <= mid && y <= mid) {
return solve(k - 1, y, x);
}
if (x <= mid && y > mid) {
return value + solve(k - 1, x, y - mid);
}
if (x > mid && y > mid) {
return 2 * value + solve(k - 1, x - mid, y - mid);
}
return 3 * value + solve(k - 1, mid - y + 1, (1 << k) - x + 1);
}
int main() {
fin >> k >> x >> y;
fout << solve(k, x, y);
return 0;
}