Cod sursa(job #3152014)

Utilizator SSKMFSS KMF SSKMF Data 23 septembrie 2023 15:39:47
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#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;
}