Pagini recente » Cod sursa (job #1274485) | Cod sursa (job #408320) | Cod sursa (job #1062549) | Cod sursa (job #2573056) | Cod sursa (job #371140)
Cod sursa(job #371140)
#include <stdio.h>
int d[17];
int z(int x,int y,int n)
{
int cnt,a;
if (n>1)
{
--n;
if ((x>d[n])&&(y>d[n]))
{
x-=d[n];
y-=d[n];
cnt=2*d[n]*d[n]+z(x,y,n);
}
else if ((x<=d[n])&&(y>d[n]))
{
y-=d[n];
a=y;
y=x;
x=a;
cnt=3*d[n]*d[n]+z(x,y,n);
}
else if((x>d[n])&&(y<=d[n]))
{
x-=d[n];
cnt=d[n]*d[n]+z(x,y,n);
}
else
{
a=y;
y=x;
x=a;
cnt=z(x,y,n);
}
return cnt;
}
else
{
if ((x==1)&&(y==1)) return 0;
if ((x==1)&&(y==2)) return 1;
if ((x==2)&&(y==1)) return 3;
return 2;
}
}
int main()
{
int x,y,n,k,i;
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
d[0]=1;
for (i=1;i<16;i++) d[i]=2*d[i-1];
scanf("%d%d%d",&n,&y,&x);
printf("%d\n",z(x,y,n));
return 0;
}