Cod sursa(job #895573)

Utilizator ericptsStavarache Petru Eric ericpts Data 27 februarie 2013 11:51:22
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
using namespace std;

int k,x,y;

int div_empera(int n,int x,int y)
{

    int mid = 1 << (n-1);
    int arie = mid*mid;
    if(n==0)
        return 0;

        if(x <= mid)
    {
        if(y <= mid)
        {
            return div_empera(n-1,y,x);
        }
        else
        {
            return 3*arie + div_empera(n-1,2*mid-y+1,mid-x+1);
        }
    }
    else
    {
        if(y <= mid)
        {
            return arie + div_empera(n-1,x-mid,y);
        }
        else
        {
            return 2*arie + div_empera(n-1,x-mid,y-mid);
        }
    }
}

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

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

    printf("%d\n",div_empera(k,x,y));

    return 0;
}