Cod sursa(job #1361466)

Utilizator patrutoiuandreipatrutoiu andrei patrutoiuandrei Data 25 februarie 2015 21:21:19
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>

using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
long long s,k,y,x,sol,l,c,i;
int divimp(long long nr)
{
    if(nr>1)
    {
        if(x<=nr&&y<=nr)
        {
            l=y;
            y=x;
            x=l;
            divimp(nr/2);
        }
        else
        {
            if(x<=nr&&y>nr)
            {
                c=x;
                y-=nr;
                x=nr-y+1;
                y=nr-c+1;
                s+=3*nr*nr;
                divimp(nr/2);
            }
            else
            {
                if(x>nr&&y<=nr)
                {
                    x-=nr;
                    s+=nr*nr;
                    divimp(nr/2);
                }
                else
                {
                    if(x>nr&&y>nr)
                    {
                        x-=nr;
                        y-=nr;
                        s+=2*nr*nr;
                        divimp(nr/2);
                    }
                }
            }
        }
    }
    return s;
}
int main()
{
fin>>k>>y>>x;
long long nr=1;
for(i=1;i<=k;i++)
{
    nr*=2;
}
sol=divimp(nr/2);
if(x==2&&y==1)
    sol+=1;
else
    if(x==2&&y==2)
        sol+=2;
    else
        if(x==1&&y==2)
            sol+=3;
fout<<sol;
    return 0;
}