Cod sursa(job #1309066)

Utilizator cautionPopescu Teodor caution Data 5 ianuarie 2015 10:40:54
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
using namespace std;
long s, two_pow_k;
void fractal(long x, long y)
{
    if(two_pow_k==1) return;
    two_pow_k/=2;
    if(x<=two_pow_k)
    {
        if(y<=two_pow_k)
        {
            fractal(y, x);
        }
        else
        {
            s+=two_pow_k*two_pow_k;
            fractal(x, y-two_pow_k);
        }
    }
    else
    {
        if(y<=two_pow_k)
        {
            s+=two_pow_k*two_pow_k*3;
            fractal(two_pow_k+1-y, 2*two_pow_k+1-x);
        }
        else
        {
            s+=two_pow_k*two_pow_k*2;
            fractal(x-two_pow_k, y-two_pow_k);
        }
    }
}
int main()
{
    ifstream in("fractal.in");
    ofstream out("fractal.out");
    long k, x, y;
    in>>k>>x>>y;
    two_pow_k=1;
    two_pow_k<<=k;
    fractal(x, y);
    out<<s<<'\n';
    in.close(); out.close();
    return 0;
}