Pagini recente » Cod sursa (job #1499640) | Cod sursa (job #2652364) | Cod sursa (job #1713678) | Cod sursa (job #1048295) | Cod sursa (job #2625241)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("fractal.in");
ofstream fout ("fractal.out");
int k, X, Y;
long long eval(int ordin, int x, int y)
{
int lat = 1<<ordin;
if(ordin == 1)
{
bool ok = y==2;
return 2*ok + (ok == 0 ? x-1 : 2-x);
}
if(x <= lat/2)
{
if(y <= lat/2)
return eval(ordin-1, y, x);
else
return 3*(lat*lat/4) + eval(ordin-1, lat+1-y, lat/2+1-x);
}
else
{
if(y <= lat/2)
return (lat*lat/4) + eval(ordin-1, x-lat/2, y);
else
return 2*(lat*lat/4) + eval(ordin-1, x-lat/2, y-lat/2);
}
}
int main()
{
fin >> k >> Y >> X;
fout << eval(k, X, Y);
return 0;
}