Cod sursa(job #2986352)

Utilizator preda.andreiPreda Andrei preda.andrei Data 28 februarie 2023 12:26:55
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

int Solve(int k, int r, int c) {
    if (k == 0) {
        return 0;
    }

    int half = 1 << (k - 1);
    int area = half * half - 1;

    if (r <= half && c <= half) {
        return Solve(k - 1, c, r);
    }
    if (r > half && c <= half) {
        return area + 1 + Solve(k - 1, r - half, c);
    }
    if (r > half && c > half) {
        return 2 * (area + 1) + Solve(k - 1, r - half, c - half);
    }
    return 3 * (area + 1) + Solve(k - 1, 2 * half - c + 1, half - r + 1);
}

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

    int k, c, r;
    fin >> k >> c >> r;

    auto res = Solve(k, r, c);
    fout << res << "\n";
    return 0;
}