Pagini recente » Profil SpiriFlaviu | Cod sursa (job #378839)
Cod sursa(job #378839)
#include<iostream>
using namespace std;
int solve(int n, int x, int y){
if(n==1)
if(x==1) return y;
else if(y==1) return 4;
else return 3;
n--;
if(x<=(1<<n)){
if(y<=(1<<n))
return (1<<n)*(1<<n)+1-solve(n, (1<<n)+1-y, x);
return ((1<<n)*(1<<n)+solve(n, x, y-(1<<n)));
}
if(y<=(1<<n))
return ((1<<(n+1))*(1<<(n+1))+1-solve(n, y, (1<<(n+1))+1-x));
return (2*(1<<n)*(1<<n)+solve(n, x-(1<<(n+1)), y-(1<<(n+1))));
}
int main(){
int K, x, y;
//ifstream f("fractal.in");
cin>>K>>x>>y;
//f.close();
//ofstream g("fractal.out");
cout<<(solve(K, x, y)-1)<<'\n';
//g.close();
return 0;
}