Pagini recente » Cod sursa (job #973323) | Cod sursa (job #1482574) | Cod sursa (job #1755297) | Cod sursa (job #1805896) | Cod sursa (job #1717066)
#include<bits/stdc++.h>
using namespace std;
int k,x,y;
int Solve(int x,int y,int k) {
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;
}
int Y=(1<<k)-x+1;
int X=(1<<(k-1))-y+1;
--k;
if(x<=(1<<k) && y<=(1<<k)) return Solve(y,x,k);
if(x<=(1<<k) && y>(1<<k)) return (1<<(2*k))+Solve(x,y-(1<<k),k);
if(x>(1<<k) && y<=(1<<k)) return 3*(1<<(2*k))+Solve(X,Y,k);
return 2*(1<<(2*k))+Solve(x-(1<<k),y-(1<<k),k);
}
int main()
{
ifstream cin("fractal.in");
ofstream cout("fractal.out");
ios_base::sync_with_stdio(0);
cin>>k>>x>>y;
cout<<Solve(x,y,k)<<'\n';
return 0;
}