Cod sursa(job #1231979)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 21 septembrie 2014 20:20:01
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<cstdio>

using namespace std;

int k,x,y;

long long solve(int gr,int x,int y)
{
    int aux;
    if(gr<0)
    {
        return 0;
    }
    aux=1<<gr;
    if((x<=aux)&&(y<=aux))
    {
        return solve(gr-1,y,x);
    }
    if((x>aux)&&(y<=aux))
    {
        return aux*aux+solve(gr-1,x-aux,y);
    }
    if((x>aux)&&(y>aux))
    {
        return 2*aux*aux+solve(gr-1,x-aux,y-aux);
    }
    return 3*aux*aux+solve(gr-1,2*aux-y+1,aux-x+1);
}

int main()
{
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    scanf("%d%d%d",&k,&x,&y);
    printf("%lld\n",solve(k,x,y));
}