Pagini recente » Cod sursa (job #257379) | Cod sursa (job #459909) | Cod sursa (job #2610922) | Cod sursa (job #2606786) | Cod sursa (job #1449695)
#include <cstdio>
using namespace std;
int k,x,y,d=1;
long long frac(int k, int x, int y)
{
if(k==2)
{
if(x==1&&y==1)
return 0;
else if(x==1&&y==2)
return 3;
else if(x==2&&y==1)
return 1;
else if(x==2&&y==2)
return 2;
}
else
{
if(x<=k/2)
{
if(y<=k/2)return frac(k/2,y,x);
else return k/2*k/2*3+frac(k/2,k-y+1,k/2-x+1);
}
else
{
if(y<=k/2)return k/2*k/2+frac(k/2,x-k/2,y);
else return k/2*k+frac(k/2,x-k/2,y-k/2);
}
}
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&k,&x,&y);
d<<=k;
printf("%lld",frac(d,y,x));
return 0;
}