Pagini recente » Cod sursa (job #653426) | Cod sursa (job #68730) | Cod sursa (job #2699936) | Cod sursa (job #2301296) | Cod sursa (job #2644311)
#include <fstream>
using namespace std;
ifstream cin("fractal.in");
ofstream cout("fractal.out");
int ans(int k,int x, int y)
{
int nx, ny, p2=(1<<(k-1));
if(x==1 && y==1)
return 0;
if(x==1 && y==(1<<k))
return (1<<(2*k))-1;
if(x<=p2 && y<=p2)///
return ans(k-1,y,x);
else if(x<=p2){
nx=(1<<k)-y+1;
ny=(1<<(k-1))-x+1;
return 3*(1<<(2*k-2))+ans(k-1,nx,ny);
}
else if(y<=p2){
nx=x-p2;
ny=y;
return (1<<(2*k-2))+ans(k-1,nx,ny);
}
else{
nx=x-p2;
ny=y-p2;
return 2*(1<<(2*k-2))+ans(k-1,nx,ny);
}
}
int main()
{
int k,x,y;
cin>>k>>x>>y;
cout<<ans(k,x,y)<<'\n';
return 0;
}