Cod sursa(job #390455)

Utilizator freak93Adrian Budau freak93 Data 3 februarie 2010 19:34:47
Problema Fractal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>

using namespace std;

const char iname[]="fractal.in";
const char oname[]="fractal.out";

ifstream f(iname);
ofstream g(oname);

long long k,x,y;

long long dps(long long k,long long x,long long y)
{
    if(k==1)
        if(x==1)
            if(y==1)
                return 0;
            else
                return 3;
        else
            if(y==1)
                return 1;
            else
                return 2;
    if(x<=(1LL<<k-1))
        if(y<=(1LL<<k-1))
            return (1LL<<2*k-2)-dps(k-1,y,(1LL<<k-1)-x+1)-1;
        else
            return (1LL<<2*k)-dps(k-1,(1LL<<k)-y+1,x)-1;
    else
        if(y>(1LL<<k-1))
            return dps(k-1,x-(1LL<<k-1),y-(1LL<<k-1))+2*(1LL<<2*k-2);
        else
            return dps(k-1,x-(1LL<<k-1),y)+(1LL<2*k-2);
}

int main()
{
    f>>k>>x>>y;

    g<<dps(k,y,x)<<"\n";

    f.close();
    g.close();

    return 0;
}