Cod sursa(job #2490745)

Utilizator cyber_ghSoltan Gheorghe cyber_gh Data 10 noiembrie 2019 20:20:09
Problema Fractal Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

int K, X, Y;

int solve( int level, int x, int y) {
    if ( level == 1 ) return 0;

    int mid = level / 2;
    if ( x <= mid && y <= mid) // 1
        return solve( y, x, level / 2);
    
    if (x <= mid && y > mid) // 2
        return 3 * mid * mid + solve(level / 2, 2 * mid + 1 - y, mid + 1 - x);

    if (x > mid && y <= mid) // 3
        return mid * mid + solve(level / 2,x - mid, y);

    if (x > mid && y > mid) // 4 
        return 2 * mid * mid + solve(level / 2, x - mid, y - mid);
}

int main() {

    fin >> K >> Y >> X;
    fout << solve( 1 << K, X, Y);
    return 0;
}