Cod sursa(job #613278)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 20 septembrie 2011 16:58:08
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>

using namespace std;

int n, x, y, sol;

void back(int n, int x, int y)
{
    if(n==0)
        return;

    int p=(1<<(n-1));

    if(x<=p && y<=p)
        back(n-1, y, x);
    else
    if(x>p && y<=p)
    {
        sol+=p*p;
        back(n-1, x-p, y);
    }
    else
    if(x>p && y>p)
    {
        sol+=2*p*p;
        back(n-1, x-p, y-p);
    }
    else
    {
        sol+=3*p*p;
        back(n-1, 2*p-y+1, p-x+1);
    }
}


int main()
{
    freopen("fractal.in", "r", stdin);
    freopen("fractal.out", "w", stdout);

    scanf("%d%d%d", &n, &x, &y);

    back(n, y, x);

    printf("%d\n", sol);

    return 0;
}