Pagini recente » Istoria paginii utilizator/drehutacarmen | Cod sursa (job #997591) | Cod sursa (job #2764121) | Cod sursa (job #1680310) | Cod sursa (job #1314843)
#include<cstdio>
#include<cmath>
FILE*n=fopen("fractal.in","r"),*m=fopen("fractal.out","w");
int a[2][2],p,t,z,k,x,y,i,d;
void c(int&o,int&p){
z=o;
o=p;
p=z;
}
int r(){
p/=2;
t=(t-3)/4;
if(k==0)
return 0;
d=a[y>p][x>p];
if(x>p)
x-=p;
if(y>p)
y-=p;
if(d==1)
if(!a[1][1]%2)
c(a[0][0],a[1][1]);
else
c(a[1][0],a[0][1]);
if(d==4){
if(a[1][1]%2)
c(a[0][0],a[1][1]);
else
c(a[1][0],a[0][1]);
}
k--;
return (t+1)*(d-1)+r();
}
int main(){
fscanf(n,"%d%d%d",&k,&x,&y);
a[0][0]=1;
a[1][0]=2;
a[1][1]=3;
a[0][1]=4;
p=pow(2,k);
t=pow(4,k)-1;
fprintf(m,"%d",r());
return 0;
}