Cod sursa(job #1720316)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 21 iunie 2016 23:06:26
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
using namespace std;
int Divide(int k,int x,int y){
    if(k==1){
        if(x==1&&y==1)
            return 0;
        if(x==1&&y==2)
            return 1;
        if(x==2&&y==2)
            return 2;
        if(x==2&&y==1)
            return 3;
    }
    if(x<=(1<<(k-1))&&y<=(1<<(k-1)))
        return Divide(k-1,y,x);
    if(x<=(1<<(k-1))&&y>(1<<(k-1)))
        return (1<<(2*(k-1)))+Divide(k-1,x,y-(1<<(k-1)));
    if(x>(1<<(k-1))&&y>(1<<(k-1)))
        return 2*(1<<(2*(k-1)))+Divide(k-1,x-(1<<(k-1)),y-(1<<(k-1)));
    if(x>(1<<(k-1))&&y<=(1<<(k-1)))
       return 3*(1<<(2*(k-1)))+Divide(k-1,(1<<(k-1))-y+1,(1<<k)-x+1);
}
int main(){
    freopen("fractal.in","r",stdin);
    freopen("fractal.out","w",stdout);
    int x,y,k;
    scanf("%d%d%d",&k,&x,&y);
    printf("%d",Divide(k,x,y));
    return 0;
}