Pagini recente » Cod sursa (job #2353023) | Cod sursa (job #1895272) | Cod sursa (job #2888800) | Cod sursa (job #627555) | Cod sursa (job #349592)
Cod sursa(job #349592)
#include <stdio.h>
long a[5],nr,p,k,x,y,i,c;
int main(){
FILE *f,*g;
f=fopen("fractal.in","r");
g=fopen("fractal.out","w");
fscanf(f,"%ld%ld%ld",&k,&y,&x);
a[1]=1;
a[2]=2;
a[3]=3;
a[4]=4;
p=1;
nr=0;
for(i=1;i<k;i++) p*=2;
while(k!=1){
c=0;
if(1<=x&&x<=p)
if(1<=y&&y<=p) c=1;
else c=4;
if(p+1<=x&&x<=p*2)
if(1<=y&&y<=p) c=2;
else c=3;
if(a[c]==1){
a[1]=4;
a[2]=1;
a[3]=2;
a[4]=3;
}
else
if(a[c]==2){
a[1]=1;
a[2]=2;
a[3]=3;
a[4]=4;
x-=p;
nr+=p*p;
}
else
if(a[c]==3){
x-=p;
y-=p;
nr+=p*p*2;
a[1]=1;
a[2]=2;
a[3]=3;
a[4]=4;
}
else
if(a[c]==4){
y-=p;
nr+=p*p*3;
a[1]=3;
a[2]=2;
a[3]=1;
a[4]=4;
}
k--;
p/=2;
}
fprintf(g,"%ld\n",nr);
fclose(f);
fclose(g);
return 0;
}