Pagini recente » Cod sursa (job #3247432) | Cod sursa (job #2173) | Cod sursa (job #3212790) | Cod sursa (job #3248013) | Cod sursa (job #3188143)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int k, x, y;
int fractal(int x, int y, int k){
//cout<<x<<" "<<y<<" "<<k<<"\n";
if(k==0) return 0;
if(x <= (1<<(k-1)) && y <= (1<<(k-1))) return 0*(1<<(k*2-2)) + fractal(y, x, k-1);
if(x > (1<<(k-1)) && y <= (1<<(k-1))) return 1*(1<<(k*2-2)) + fractal(x-(1<<(k-1)), y, k-1);
if(x > (1<<(k-1)) && y > (1<<(k-1))) return 2*(1<<(k*2-2)) + fractal(x-(1<<(k-1)), y-(1<<(k-1)), k-1);
if(x <= (1<<(k-1)) && y > (1<<(k-1))) return 3*(1<<(k*2-2)) + fractal(x + ((1<<(k-1))+1 - (x + (y-(1<<(k-1))))), y-(1<<(k-1)) + ((1<<(k-1))+1 - (x + (y-(1<<(k-1))))), k-1);
}
int main(){
fin>>k>>y>>x;
fout<<fractal(x, y, k);
}