Pagini recente » Cod sursa (job #913959) | Cod sursa (job #927567) | Cod sursa (job #2205362) | Cod sursa (job #1552985) | Cod sursa (job #460341)
Cod sursa(job #460341)
#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=2<<(k-1);
int 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,"%d",&a);
fscanf(fin,"%d",&b);
/*printf("%d",k);
printf("%d",a);
printf("%d",b);*/
fprintf(fout,"%d",rec(k,a,b));
return 0;
}