Pagini recente » Cod sursa (job #2508932) | Cod sursa (job #1630565) | Cod sursa (job #160681) | Cod sursa (job #1208878) | Cod sursa (job #1429226)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
long long int solve(int k,int x,int y){
if(k == 0){
return 0;
}
long long int mid = (1 << (k - 1));
long long int ad = mid * mid;
if(x <= mid && y <= mid){
return solve(k - 1,y,x);
}
if(x <= mid && y > mid){
return 3 * ad + solve(k - 1,2 * mid - y + 1,mid - x + 1);
}
if(x > mid && y <= mid){
return ad + solve(k - 1,x - mid,y);
}
if(x > mid && y > mid){
return 2 * ad + solve(k - 1,x - mid,y - mid);
}
}
int main()
{
long long int k,x,y;
fin >> k >> x >> y;
fout << solve(k,y,x);
return 0;
}