Pagini recente » Cod sursa (job #725683) | Cod sursa (job #2353406) | Cod sursa (job #1810583) | Cod sursa (job #2799729) | Cod sursa (job #287815)
Cod sursa(job #287815)
#include<fstream>
std::ifstream f("fractal.in");
std::ofstream g("fractal.out");
long long n,i,j,x,y,d,k;
long long cadran(long long &x,long long &y,long long &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) { long long aux=x;
x=(1<<k)-y+1;
y=aux;
return 4;
}
long long aux=y;
y=(1<<k-1)-x+1;
x=aux;
return 1;
}
long long rez(long long &x,long long &y,long long k)
{ if(k==1) { if(x==1&&y==1) return 0;
if(x==1) return 3;
if(y==1) return 1;
return 2;
}
long long c=cadran(x,y,k)-1;
long long 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;
}