Cod sursa(job #2609465)

Utilizator AokijiAlex M Aokiji Data 2 mai 2020 17:58:43
Problema Fractal Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;

ifstream cin("fractal.in");
ofstream cout("fractal.out");

int p2[32];
int answer(int k, int x, int y);

int main()
{
    for(int i=0; i<=30; ++i)
        p2[i]=(1<<i);
    int k,x,y;
    cin>>k>>y>>x;
    cout<<answer(k,x,y)<<'\n';
    return 0;
}

int answer(int k, int x, int y)
{
    if(x==1 && y==1)
        return 0;
    if(x==1 && y==p2[k])
        return p2[k*2]-1;
    if(x>p2[k-1])
    {
        if(y>p2[k-1])
            return 2*p2[2*(k-1)]+answer(k-1,x-p2[k-1],y-p2[k-1]);
        else
            return p2[2*(k-1)]+answer(k-1,x-p2[k-1],y);
    }
    else
        {
            if(y>p2[k-1])
                return 3*p2[2*(k-1)]+answer(k-1,p2[k]-y+1,x);
            else
                return answer(k-1,y,x);
        }
}