Pagini recente » Cod sursa (job #1442110) | Cod sursa (job #2723527) | Cod sursa (job #2940393) | Cod sursa (job #3290560) | Cod sursa (job #59512)
Cod sursa(job #59512)
#include <stdio.h>
#define pow(xx) (1<<(xx))
int cost(int i,int j,int k)
{
// printf("intru %d %d %d\n",i,j,k);
if(!k || (i==1 && j==1))
return 0;
int lim = 1<<(k-1);
// stanga sus
if(i<=lim && j<=lim)
return cost(i,j,k-1);
// dreapta sus
if(i<=lim && j>lim)
{
j -= lim;
return 3+3*(pow(2*k-2)-1)+cost(i,j,k-1);
}
// stanga jos
if(i>lim && j<=lim)
{
i -= lim;
return 1+(pow(2*k-2)-1)+cost(i,j,k-1);
}
//dreapta jos
return 2+2*(pow(2*k-2)-1)+cost(i-lim,j-lim,k-1);
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
int i,j,k;
scanf("%d%d%d",&k,&i,&j);
printf("%d\n",cost(i,j,k));
return 0;
}