Pagini recente » Cod sursa (job #2460663) | Cod sursa (job #1192962) | Cod sursa (job #3258160) | Cod sursa (job #1010694) | Cod sursa (job #2344026)
#include <fstream>
using namespace std;
ifstream f("fractal.in");
ofstream g("fractal.out");
int n,x,y,nr,l;
void hilbert(int x, int y){
if(n>0){
l=l/2;
if(x<=l && y<=l){
nr+=0*l*l;
swap(x,y);
}
else if(x>l && y<=l){
nr+=1*l*l;
x-=l;
}
else if(x>l && y>l){
nr+=2*l*l;
x-=l;y-=l;
}
else{
nr+=3*l*l;
y-=l;
if( (x<=l/2 && y<=l/2) || (x>l/2 && y>l/2) ){
x=l-x+1;
y=l-y+1;
}
}
n--;
hilbert(x,y);
}
}
int main()
{ f>>n>>y>>x;
l=1<<n;
hilbert(x,y);
g<<nr;
return 0;
}