Pagini recente » Cod sursa (job #972586) | Cod sursa (job #46435) | Cod sursa (job #324990) | Cod sursa (job #329830) | Cod sursa (job #1948379)
#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) /// N-V
solve(y, x, lv - 1);
else if (x > mid && y <= mid) /// N-E
ans += mid * mid, solve(x - mid, y, lv - 1);
else if (x > mid && y > mid) /// S E
ans += 2 * mid * mid, solve(x - mid, y - mid, lv - 1);
else
ans += 3 * mid * mid, solve(2 * mid - y + 1, mid - x + 1, lv - 1);
}
int main()
{
freopen("fracatal.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;
}