Pagini recente » Cod sursa (job #2517624) | Cod sursa (job #2865352) | Cod sursa (job #1513571) | Cod sursa (job #2338993) | Cod sursa (job #2036467)
#include <iostream>
#include <cstdio>
using namespace std;
int nrPasi(int n, int x, int y)
{
if(n == 1)
return 0;
if(x <= n/2 && y <= n/2)
return nrPasi(n/2, y, x);
else if(x <= n/2 && y > n/2)
return n/2*n/2 + nrPasi(n/2, x, y-n/2);
else if(x > n/2 && y > n/2)
return 2 * (n/2*n/2) + nrPasi(n/2, x-n/2, y-n/2);
else if(x > n/2 && y <= n/2)
return 3 * (n/2*n/2) + nrPasi(n/2, n/2-y+1, n-x+1);
}
int main()
{
freopen("fractal.in", "r", stdin);
freopen("fractal.out", "w", stdout);
int k, x, y;
scanf("%d%d%d", &k, &x, &y);
int n = 1<<k;
printf("%d", nrPasi(n, x, y));
return 0;
}