Cod sursa(job #2490754)

Utilizator cyber_ghSoltan Gheorghe cyber_gh Data 10 noiembrie 2019 20:38:16
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 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( level / 2, y , x);
    
    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;
}