Cod sursa(job #460346)

Utilizator LauraTudorTudor Laura LauraTudor Data 2 iunie 2010 00:07:14
Problema Fractal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<math.h>
int rec(int k,int a,int b){
	if(k==1){
		if(a==1)
			return b-1;
		else
			return 4-b;
	}
	else{
		 int p1=1<<(k-1);
		 int p2=1<<(2*k-2);
		 int p3=1<<(k);
		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;
	int a,b;
	FILE *fin=fopen("fractal.in","r");
	FILE *fout=fopen("fractal.out","w");
	fscanf(fin,"%d",&k);
	fscanf(fin,"%d",&b);
	fscanf(fin,"%d",&a);
	/*printf("%d",k);
	printf("%d",a);
	printf("%d",b);*/
	int x=rec(k,a,b);
	fprintf(fout,"%d\n",x);
	return 0;
}