Pagini recente » Cod sursa (job #1888711) | Cod sursa (job #2128908) | Cod sursa (job #1003662) | Cod sursa (job #2533120) | Cod sursa (job #287810)
Cod sursa(job #287810)
#include<fstream>
std::ifstream f("fractal.in");
std::ofstream g("fractal.out");
int n,i,j,x,y,d,k;
int cadran(int &x,int &y,int &k)
{ if(x>1<<k-1&&y>1<<k-1) { x-=1<<k-1;
y-=1<<k-1;
return 3;
}
if(x>1<<k-1) { x-=1<<k-1;
y-=1<<k-1;
return 2;
}
if(y>1<<k-1) { int aux=x;
x=(1<<k)-y+1;
y=aux;
return 4;
}
int aux=y;
y=(1<<k-1)-x+1;
x=aux;
return 1;
}
int rez(int &x,int &y,int k)
{ if(k==1) { if(x==1&&y==1) return 0;
if(x==1) return 3;
if(y==1) return 1;
return 2;
}
int c=cadran(x,y,k)-1;
int d=c*(1<<(k+k-2));
if(c==1||c==2) return d+rez(x,y,k-1);
return d+(1<<k+k-2)-rez(x,y,k-1)-1;
}
int main()
{ f>>k>>y>>x;
g<<rez(x,y,k)<<"\n";
f.close();
g.close();
return 0;
}