Pagini recente » Statistici Subtirica Florin Ioan (FlorinIoan) | Cod sursa (job #1158037) | Cod sursa (job #2193992) | Cod sursa (job #274326) | Cod sursa (job #686057)
Cod sursa(job #686057)
#include<stdio.h>
long v[16];
unsigned long long fractal1(int a)
{
if(a==1) return 3;
return 3+4*fractal1(a-1);
}
unsigned long long fractal2(int k,long x,long y)
{
if(k==1)
if(x==1)
if(y==1) return 0;
else return 3;
else
if(y==1) return 1;
else return 2;
if(x<=v[k-1]&&y<=v[k-1]) return fractal2(k-1,y-v[k],x);
if(x>v[k-1]&&y<=v[k-1]) return 1+fractal1(k-1)+fractal2(k-1,x-v[k],y);
if(x>v[k-1]&&y>v[k-1]) return 2+2*fractal1(k-1)+fractal2(k-1,x-v[k],y-v[k]);
return 3+3*fractal1(k-1)+fractal2(k-1,v[k]-x+1,y);
}
int main()
{
int k,i;
long x,y;
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%ld%ld",&k,&x,&y);
v[0]=1;
for(i=1;i<k;i++)
v[i]=v[i-1]*2;
printf("%ld",fractal2(k,x,y));
return 0;
}