Cod sursa(job #1789344)

Utilizator pistvanPeter Istvan pistvan Data 26 octombrie 2016 21:31:59
Problema Fractal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
//#include <fstream>
#include <iostream>
using namespace std;

unsigned fr(unsigned k, unsigned x, unsigned y)
{
    if (k==0)
    {
        return 0;
    }
    else
    {
        unsigned hatv=1;
        for (int i=0;i<k-1;i++) hatv<<=1; //2^(k-1)
        if (x<=hatv && y<=hatv)
        {
            return fr(k-1, y, x);
        }
        else if (x<=hatv && y>hatv)
        {
            return fr(k-1, x, y-hatv+1)+hatv*hatv;
        }
        else if (x>hatv && y>hatv)
        {
            return fr(k-1, x-hatv, y-hatv)+hatv*hatv*2;
        }
        else if (x>hatv && y<=hatv)
        {
            return fr(k-1, hatv-y+1, hatv*2-x)+3*hatv*hatv;
        }
    }

}

int main()
{
    int k, x, y;
    //ifstream f("fractal.in");
    //f>>k>>x>>y;
    //ofstream g("fractal.out");
    //g<<fr(k, x, y);
    cin>>k>>x>>y;
    cout<<fr(k, x, y);
}