Cod sursa(job #1948383)

Utilizator ionutpop118Pop Ioan Cristian ionutpop118 Data 1 aprilie 2017 00:46:19
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
}