Cod sursa(job #490072)

Utilizator PaladinqazVlad Victor Paladinqaz Data 4 octombrie 2010 20:45:41
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 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;
}