Cod sursa(job #2215603)

Utilizator NOSCOPEPROKENDYMACHEAMACUMVREAU NOSCOPEPROKENDY Data 22 iunie 2018 19:39:13
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
ifstream cin("fractal.in");
ofstream cout("fractal.out");
int k,x,y,ord[20],p[20];
int fractal(int k,int x,int y)
{
    if(k==0) return 0;
    if(x<=p[k-1])
    {
        if(y<=p[k-1]) return fractal(k-1,y,x);
        else {y-=p[k-1];  return 3+3*ord[k-1]+fractal(k-1,p[k-1]-y+1,p[k-1]-x+1);}
    }
    else
    {
        x-=p[k-1];
        if(y<=p[k-1]) return 1+ord[k-1]+fractal(k-1,x,y);
        else {y-=p[k-1];  return 2+2*ord[k-1]+fractal(k-1,x,y);}
    }
}
int main()
{
    cin>>k>>y>>x;
    ord[1]=3; p[0]=1; p[1]=2;
    for(int i=2;i<=15;i++)
    {
        ord[i]=4*ord[i-1]+3;
        p[i]=p[i-1]*2;
    }
    cout<<fractal(k,x,y);
}