Cod sursa(job #2455024)

Utilizator MichaelXcXCiuciulete Mihai MichaelXcX Data 10 septembrie 2019 17:28:37
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;

ifstream fin("fractal.in");
ofstream fout("fractal.out");

int searching(int g, int x, int y)
{
    if(g == 1)
    {
        if(x == 1 && y == 1)
            return 0;
        if(x == 1 && y == 2)
            return 3;
        if(x == 2 && y == 1)
            return 1;

        return 2;
    }

    int p = (1 << (g - 1));

    if(x <= p && y <= p)
        return searching(g - 1, y, x);

    if(x > p && y <= p)
        return p * p + searching(g - 1, x - p, y);

    if(x > p && y > p)
        return p * p * 2 + searching(g - 1, x - p, y - p);

    if(x <= p && y > p)
        return p * p * 3 + searching(g - 1, 2 * p - y + 1, p - x + 1);
}

int main()
{
    int k, x, y;
    fin >> k >> x >> y;
    fout << searching(k, y, x);

    return 0;
}