Pagini recente » Cod sursa (job #995009) | Cod sursa (job #1772772) | Cod sursa (job #1159993) | Cod sursa (job #1460099) | Cod sursa (job #471349)
Cod sursa(job #471349)
#include <cstdio>
inline int f (int k, int x, int y)
{
if (k == 1)
return x == 1 ? y - 1 : 4 - y;
int p = 1 << (k - 1);
int q = 1 << (2 * k - 2);
int t = 1 << k;
if (x > p && y < p)
return 3 * t + f (k - 1, p + 1 - y, q + 1 - x);
if (x > p && y > p)
return 2 * q + f (k - 1, x - p, y - p);
if (x <= p && y > p)
return q + f (k - 1, x, y - p);
if (x <= p && y <= p)
return f (k - 1, y, x);
}
int main ()
{
freopen ("fractal.in","r", stdin);
freopen ("fractal.out", "w", stdout);
int k, x, y;
scanf ("%d %d %d", &k, &x, &y);
printf ("%d\n",f (k, x, y));
return 0;
}