Pagini recente » Cod sursa (job #445525) | Cod sursa (job #2365984) | Cod sursa (job #234325) | Cod sursa (job #1356688) | Cod sursa (job #651470)
Cod sursa(job #651470)
#include<fstream>
using namespace std;
int n,x,y,cadr,tmp;
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);
else
if(cadr==2)
x-=l/2;
else
if(cadr==4) {
tmp=x;
x=l+1-y;
y=l/2+1-tmp;
}
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<<'\n';
in.close();
out.close();
return 0;
}