Pagini recente » Cod sursa (job #953542) | Cod sursa (job #852519) | Cod sursa (job #1951111) | Cod sursa (job #3263015) | Cod sursa (job #460340)
Cod sursa(job #460340)
#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{
long p1=1<<(k-1);
long p2=2<<(k-1);
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;
}