Cod sursa(job #2810201)

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

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

/**
 _   _
 _| |_
|  _  |
|_| |_|
**/

int afla(int k, int x, int y){
    if(k == 0){
        return 0;
    }
    int l = 1<<(k-1);
    if(x <= l && y <= l){
        /// cadranul 1
        return afla(k-1, y, x);
    }else if(x > l && y <= l){
        /// cadranul 2
        return (l*l)+afla(k-1, x-l, y);
    }else if(x <= l && y > l){
        /// cadranul 4
        return (3*l*l)+afla(k-1, 2*l-y+1, l-x+1);
    }else{
        /// cadranul 3
        return (2*l*l)+afla(k-1, x-l, y-l);
    }
}

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