Pagini recente » Cod sursa (job #2093013) | Cod sursa (job #824653) | Cod sursa (job #2090748) | Cod sursa (job #2041108) | Cod sursa (job #2490648)
#include<fstream>
using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int resolve(int x, int y, int n, int sol)
{
int mid = (1 << (n-1));
if(n == 0)
{
return sol;
}
//primul cadran
if(x <= mid && y <= mid)
{
//cout << "cadran1\n";
return resolve(y, x, n-1, sol);
}
//al doilea cadran
if(x <= mid && y > mid)
{
//cout << "cadran2\n";
return resolve(2*mid+1-y, mid-x, n-1, sol + 3*mid*mid);
}
//al treilea cadran
if(x > mid && y <= mid)
{
//cout << "cadran3\n";
return resolve(x-mid,y, n-1, sol + mid*mid);
}
//al patrulea cadran
if(x > mid && y > mid)
{
//cout << "cadran4\n";
return resolve(x-mid, y-mid, n-1, sol + 2*mid*mid);
}
}
int main()
{
int k;
fin >> k;
int x, y;
fin >> y >> x;
fin.close();
fout << resolve(x, y, k, 0);
fout.close();
}