Cod sursa(job #2616676)

Utilizator As932Stanciu Andreea As932 Data 19 mai 2020 18:11:10
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

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

long long steps(int k)
{
    long long nr=0;
    for(int i=1;i<=k;i++)
        nr=nr*4+3;
    return nr;
}

long long solve(int k,long long x,long long y)
{
    if(k==0)
        return 0;

    long long mij=(1<<k)/2;

    if(x<=mij && y<=mij)
        return solve(k-1,y,x);
    if(x>mij && y<=mij)
        return steps(k-1)+1+solve(k-1,x-mij,y);
    if(x>mij && y>mij)
        return 2*steps(k-1)+2+solve(k-1,x-mij,y-mij);

    return 3*steps(k-1)+3+solve(k-1,mij-(y-mij)+1,mij-x+1);
}

int main()
{
    int k;
    long long x,y;

    cin>>k>>y>>x;

    cout<<solve(k,x,y);

    return 0;
}