Pagini recente » Cod sursa (job #14932) | Cod sursa (job #1447038) | Cod sursa (job #3268535) | Cod sursa (job #2873252) | Cod sursa (job #273094)
Cod sursa(job #273094)
#include <cstdio>
using namespace std;
int k, x, y, sol;
int proc(int k, int x, int y)
{
int l = (1 << (k - 1));
if (k == 1)
{
if (x == 1 && y == 2) return 4;
return x + y - 1;
}
if (x <= l && y <= l) return proc(k - 1, y, x);
if (x > l && y <= l) return proc(k - 1, x - l, y) + l * l;
if (x > l && y > l) return proc(k - 1, x - l, y - l) + 2 * l * l;
return proc(k - 1, l - (y - l) + 1, l - x + 1) + 3 * l * l;
}
int main()
{
freopen("fractal.in", "r", stdin);
freopen("fractal.out", "w", stdout);
scanf("%d%d%d", &k, &y, &x);
printf("%d\n", proc(k, x, y) - 1);
}