Pagini recente » Cod sursa (job #2248636) | Cod sursa (job #1949269) | Cod sursa (job #1140893) | Cod sursa (job #1517222) | Cod sursa (job #761176)
Cod sursa(job #761176)
#include <stdio.h>
int x,y,m;
int put (int val)
{
return 1<<val;
}
void schimb (int &i,int &j)
{
int aux;
aux=i;
i=j;
j=aux;
}
int fractal (int i,int j,int k)
{
int d;
if (!k || (i==1 && j==1))
return 0;
d=put (k-1);
if(i<=d && j<=d)
{
schimb (i,j);
return fractal (i,j,k-1);
}
if(i<=d && j>d)
{
j-=d;
schimb (i,j);
i=d-i+1;
j=d-j+1;
return 3+3*(put (2*k-2)-1)+fractal (i,j,k-1);
}
if(i>d && j<=d)
{
i-=d;
return 1+(put (2*k-2)-1)+fractal (i,j,k-1);
}
return 2+2*(put (2*k-2)-1)+fractal (i-d,j-d,k-1);
}
int main ()
{
freopen ("fractal.in","r",stdin);
freopen ("fractal.out","w",stdout);
scanf ("%d%d%d",&m,&x,&y);
printf ("%d",fractal (y,x,m));
return 0;
}