Cod sursa(job #488442)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 28 septembrie 2010 19:09:42
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
long n,x,y;
long rec(long a,long b,long k)
{long x=0,y=0,z=0,xn=0,yn=0;
 if (k==0)return 0;
 k--;
 if(a>(1<<k)&&b>(1<<k))z=2;
 if(a>(1<<k)&&b<=(1<<k))z=1;
 if(a<=(1<<k)&&b>(1<<k))z=3;
 x=a%(1<<k);
 y=b%(1<<k);
 if(x==0)x=(1<<k);
 if(y==0)y=(1<<k);
 if(z==0)xn=y,yn=x,x=xn,y=yn;
 if(z==3)yn=(1<<k)-x+1,xn=(1<<k)-y+1,x=xn,y=yn;
 return z*(1<<k)*(1<<k)+rec(x,y,k);
}
int main()
{
 freopen("fractal.in","r",stdin);
 freopen("fractal.out","w",stdout);
 scanf("%ld%ld%ld",&n,&y,&x);
 printf("%ld\n",rec(x,y,n));
 return 0;
}