Cod sursa(job #2810191)

Utilizator divadddDavid Curca divaddd Data 28 noiembrie 2021 19:41:09
Problema Fractal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
long long n,k,x,y;

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

void afla(long long k, long long x, long long y, long long val){
    /**
    1 2 devine 1 4
    3 4        2 3
    **/
    if(k != 1){
        int l = 1<<k;
        l /= 2;
        if(x <= l && y > l){
            /// cadranul 4
            val += 3*l*l;
            y -= l;
        }else if(x > l && y <= l){
            /// cadranul 2
            val += l*l;
            x -= l;
        }else if(x > l && y > l){
            /// cadranul 3
            val += 2*l*l;
            y -= l;
            x -= l;
        }
        afla(k-1, x, y, val);
    }else{
        fout << val << "\n";
    }
}

int main()
{
    fin >> k >> x >> y;
    if(k == x && k == 1 && y == x){
        fout << 0;
        return 0;
    }
    afla(k, x, y, 1);
    return 0;
}