Cod sursa(job #460339)

Utilizator LauraTudorTudor Laura LauraTudor Data 1 iunie 2010 23:42:34
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<math.h>
long rec(int k,long a,long b){
	if(k==1){
		if(a==1)
			return b-1;
		else
			return 4-b;
	}
	else{
		unsigned long p1=1<<(k-1);
		unsigned long p2=2<<(k-1);
		unsigned long p3=p1<<1;
		if(a>p1&&b<=p1)
			return 3*p2+ rec(k-1,p1+1-b,p3+1-a);
		if(a>p1&&b>p1)
			return 2*p2 +rec(k-1,a-p1,b-p1);
		if(a<=p1&&b>p1)
			return p2+rec(k-1,a,b-p1);
		if(a<=p1&&b<=p1)
			return rec(k-1,b,a);
	}
}

int main(){
	int k;
	long a,b;
	FILE *fin=fopen("fractal.in","r");
	FILE *fout=fopen("fractal.out","w");
	fscanf(fin,"%d",&k);
	fscanf(fin,"%ld",&a);
	fscanf(fin,"%ld",&b);
	/*printf("%d",k);
	printf("%d",a);
	printf("%d",b);*/
	fprintf(fout,"%ld",rec(k,a,b));
	return 0;
}