Pagini recente » Cod sursa (job #40350) | Cod sursa (job #2253) | Cod sursa (job #57325) | Cod sursa (job #3269633) | Cod sursa (job #3152014)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("fractal.in");
ofstream cout ("fractal.out");
int ordinHilbert (int linie , int coloana , int lungime)
{
if (!(lungime >>= 1))
return 0;
if (linie <= lungime)
{
if (coloana <= lungime)
return ordinHilbert(coloana , linie , lungime);
return 3 * lungime * lungime + ordinHilbert((lungime << 1) - coloana + 1 , lungime - linie + 1 , lungime);
}
if (coloana <= lungime)
return lungime * lungime + ordinHilbert(linie - lungime , coloana , lungime);
return 2 * lungime * lungime + ordinHilbert(linie - lungime , coloana - lungime , lungime);
}
int main ()
{
int ordin , linie , coloana;
cin >> ordin >> coloana >> linie;
cout << ordinHilbert(linie , coloana , (1 << ordin));
cout.close(); cin.close();
return 0;
}