Pagini recente » Cod sursa (job #2635810) | Cod sursa (job #2903172) | Cod sursa (job #2008062) | Cod sursa (job #2789492) | Cod sursa (job #2146215)
#include <bits/stdc++.h>
using namespace std;
int k, x, y;
int length(int k, int x, int y)
{
if (k == 1)
{
if (x == 1 && y == 1) return 0;
else if (x == 1 && y == 2) return 1;
else if (x == 2 && y == 2) return 2;
return 3;
}
else
{
k--;
int n = 1 << k;
if (x <= n)
{
if (y <= n) return length(k, y, x);
else return (1 << (2*k)) + length(k, x, y - n);
}
else
{
if (y <= n) return 3 * (1 << (2*k)) + length(k, n - y + 1, 2*n - x + 1);
else return 2 * (1 << (2*k)) + length(k, x - n, y - n);
}
}
}
int main()
{
freopen ("fractal.in", "r", stdin);
freopen ("fractal.out", "w", stdout);
scanf("%i%i%i", &k, &x, &y);
printf("%i", length(k, x, y));
return 0;
}