Pagini recente » Cod sursa (job #2156581) | Cod sursa (job #1416765) | Cod sursa (job #1379534) | Cod sursa (job #2615300) | Cod sursa (job #1720316)
#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;
}