Pagini recente » Cod sursa (job #3139925) | Cod sursa (job #97417) | Cod sursa (job #3240725) | Cod sursa (job #2839255) | Cod sursa (job #2616676)
#include <fstream>
using namespace std;
ifstream cin("fractal.in");
ofstream cout("fractal.out");
long long steps(int k)
{
long long nr=0;
for(int i=1;i<=k;i++)
nr=nr*4+3;
return nr;
}
long long solve(int k,long long x,long long y)
{
if(k==0)
return 0;
long long mij=(1<<k)/2;
if(x<=mij && y<=mij)
return solve(k-1,y,x);
if(x>mij && y<=mij)
return steps(k-1)+1+solve(k-1,x-mij,y);
if(x>mij && y>mij)
return 2*steps(k-1)+2+solve(k-1,x-mij,y-mij);
return 3*steps(k-1)+3+solve(k-1,mij-(y-mij)+1,mij-x+1);
}
int main()
{
int k;
long long x,y;
cin>>k>>y>>x;
cout<<solve(k,x,y);
return 0;
}