Pagini recente » Cod sursa (job #464428) | Cod sursa (job #2216621) | Cod sursa (job #1575972) | Cod sursa (job #1780244) | Cod sursa (job #651372)
Cod sursa(job #651372)
#include<fstream>
using namespace std;
int n,x,y,cadr;
long long sum;
void rec(int k,int l) {
if(k<n)
rec(k+1,2*l);
if(x<=l/2&&y<=l/2)
cadr=1;
else
if(x>l/2&&y<=l/2)
cadr=2;
else
if(x<=l/2&&y>l/2)
cadr=4;
else
if(x>l/2&&y>l/2)
cadr=3;
sum+=1LL*(cadr-1)*l*l/4;
if(cadr==1) {
swap(x,y);
y=l/2+1-y;
}
else
if(cadr==2)
x-=l/2;
else
if(cadr==4) {
swap(x,y);
x=l+1-x;
}
else
if(cadr==3) {
x-=l/2;
y-=l/2;
}
}
int main() {
ifstream in("fractal.in");
ofstream out("fractal.out");
in>>n>>x>>y;
swap(x,y);
rec(1,2);
out<<(sum+cadr)<<'\n';
in.close();
out.close();
return 0;
}