Pagini recente » Cod sursa (job #474821) | Cod sursa (job #399110) | Cod sursa (job #2190535) | Cod sursa (job #947250) | Cod sursa (job #1948383)
#include <cstdio>
using namespace std;
int ans = 0;
void solve(int x, int y, int lv)
{
if (lv == 0)
return ;
int mid = (1 << (lv - 1));
if (x <= mid && y <= mid)
solve(y, x, lv - 1);
else if (x > mid && y <= mid)
{
ans += mid * mid;
solve(x - mid, y, lv - 1);
}
else if (x > mid && y > mid)
{
ans += 2 * mid * mid;
solve(x - mid, y - mid, lv - 1);
}
else if (x <= mid && y > mid)
{
ans += 3 * mid * mid;
solve(2 * mid - y + 1, mid - x + 1, lv - 1);
}
}
int main()
{
freopen("fractal.in", "r", stdin);
freopen("fractal.out", "w", stdout);
int a, b, k;
scanf("%d %d %d", &k, &b, &a);
solve(a, b, k);
printf("%d\n", ans);
return 0;
}