Cod sursa(job #1943134)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 28 martie 2017 12:54:56
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>

using namespace std;
long long k,x,y,L,sol;
ifstream fin ("fractal.in");
ofstream fout ("fractal.out");
int fractal (int k,int x, int y){
    if (k == 1)
        return 0;
    k /= 2;
    if ( x <= k ){
        if (y <= k)
            return fractal (k,y,x);
        return 3*k*k + fractal (k,2*k-y+1,k-x+1);
    }
    if (y > k)
        return 2*k*k + fractal (k,x-k,y-k);
    return k*k + fractal (k,x-k,y);

}
int main (){
    // 1 4
    // 2 3
    fin>>k>>x>>y;
    fout<<fractal ((1<<k),y,x);

   /* L = (1<<k);
    //if (x > y)
        swap (x,y);
    while (L!=1){
        L/=2;
        if (x <= L){
            if (y > L){
                sol += 3*L*L; // merge 3 cadrane pana acolo (e in 4)
                x = 2*L-y+1;
                y = L-x+1;
                continue;
            }

            swap (x,y);
            continue;

        }

        if (y <= L){
            sol += L*L; // un cadran
            x -= L;
            continue;
        }

        sol += L*L*2; // doua cadrane
        x -= L;
        y -= L;
        continue;
    }
    fout<<sol;
*/

    return 0;
}