Pagini recente » Cod sursa (job #457929) | Cod sursa (job #1799651) | Cod sursa (job #2841775) | Cod sursa (job #1223469) | Cod sursa (job #365469)
Cod sursa(job #365469)
#include<stdio.h>
int n,x,y;
int rec(int k, int x, int y, int lat)
{
if(x==1 && y==1)
return 0;
if(x<=(1<<(k-1)) && y<=(1<<(k-1)))
return rec(k-1,y,x,lat/4);
if(y<=(1<<(k-1)))
return lat/4+rec(k-1,x-(1<<(k-1)),y,lat/4);
if(x>(1<<(k-1)) && y>(1<<(k-1)))
return lat/2+rec(k-1,x-(1<<(k-1)),y-(1<<(k-1)),lat/4);
y=y-(1<<(k-1));
return lat/4*3+rec(k-1,(1<<(k-1))-y+1,(1<<(k-1))-x+1,lat/4);
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&n,&y,&x);
printf("%d\n",rec(n,x,y,1<<2*n));
return 0;
}