Cod sursa(job #3290370)

Utilizator _andr31Rusanescu Andrei-Marian _andr31 Data 30 martie 2025 15:51:00
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <limits.h>

using namespace std;

int fractal(int n, int y, int x) {
    if (n == 0)
        return 0;

    int half = 1 << (n - 1);
    int cadran = half * half;

    // stanga jos
    // cout << "Linia: " << y << ", " << "Coloana " << x << ' ' << half <<  '\n';
    if (y > half && x <= half) {
        // cout << "Stanga jos\n";
        return cadran + fractal(n - 1, y - half, x);
    } else if (y > half && x > half) {
        // cout << "Dreapta jos\n";
        return 2 * cadran + fractal(n - 1, y - half, x - half);
    } else if (y <= half && x > half) {
        // cout << "Dreapta sus\n";
        return 3 * cadran + fractal(n - 1, 2 * half - x + 1, half - y + 1);
    }
    // cout << "Stanga sus\n";
    return fractal(n - 1, x, y);
}

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

    int k, x, y;

    fin >> k >> x >> y;

    fout << fractal(k, y, x) << '\n';

    return 0;
}