Pagini recente » Profil DenisMirica | Cod sursa (job #2950071) | Cod sursa (job #4463) | Cod sursa (job #35188) | Cod sursa (job #2810203)
#include <iostream>
#include <fstream>
using namespace std;
long long n,k,x,y;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
/**
_ _
_| |_
| _ |
|_| |_|
**/
void afla(long long k, long long x, long long y, long long val){
/**
1 2 devine 1 4
3 4 2 3
**/
if(k != 0){
int l = 1<<(k-1); /// <=> l = ...; l /= 2;
if(x <= l && y > l){
/// cadranul 4
val += 3*l*l;
y = 2*l-y+1;
x = l-x+1;
afla(k-1, y, x, val);
}else if(x > l && y <= l){
/// cadranul 2
val += l*l;
x -= l;
afla(k-1, x, y, val);
}else if(x > l && y > l){
/// cadranul 3
val += 2*l*l;
y -= l;
x -= l;
afla(k-1, x, y, val);
}else{
afla(k-1, y, x, val);
}
}else{
fout << val << "\n";
}
}
int main()
{
fin >> k >> y >> x;
if(k == x && k == 1 && y == x){
fout << 0;
return 0;
}
afla(k, x, y, 0);
return 0;
}