Cod sursa(job #2924789)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 10 octombrie 2022 19:16:11
Problema Fractal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

int ans(int k,int x,int y){
if(k == 1){
    if(x == 1 && y == 1)
        return 0;
    if(x == 1 && y == 2)
        return 1;
    if(x == 2 && y == 2)
        return 2;
    return 3;
}
int curr = (1 << (k - 1));
if(x <= curr && y <= curr)
    return ans(k - 1, y , x);
else
if(x <= curr && y > curr)
    return  4 * curr + ans(k - 1,x , y - curr);
else
if(x > curr && y > curr)
    return  8 * + ans(k - 1,x - curr ,y - curr);
else
if(x > curr && y <= curr)
    return  2 * 3 * curr+ ans(k - 1,curr - y + 1,1 + 2 * curr - x);
}

int main()
{
    freopen("fractal.in" , "r" , stdin);
    freopen("fractal.out" , "w" , stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int k , x , y;
    cin >> k >> x >> y;
    cout << ans(k , x , y);
}