Cod sursa(job #2925587)

Utilizator SeracovanuEdwardSeracovanu Edward SeracovanuEdward Data 15 octombrie 2022 19:08:40
Problema Fractal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 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  curr * curr + ans(k - 1,x , y - curr);
else
if(x > curr && y > curr)
    return  2 * curr * curr + ans(k - 1,x - curr ,y - curr);
else
if(x > curr && y <= curr)
    return  3 * curr * 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);
}