Cod sursa(job #1942396)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 27 martie 2017 22:52:29
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<vector>
#include<fstream>

using namespace std;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int i, aux, n, sol , k, a ,b;

void calc(int i ,int j, int aux)
{
    int a,b;
    if(aux==0)
        return;
    if(i<=aux)
    {
        if(j<=aux)
        {
            a=j;
            b=aux-i+1;
            i=a;
            j=b;
            j=aux-j+1;
            calc(i,  j, aux/2);
        }
        else
        {
            j-=aux;
            a=aux-j+1;
            b=i;
            i=a;
            j=b;
            j=aux-j+1;
            sol+=aux*aux*3;
            calc(i, j, aux/2);
        }
    }
    else
    {
        if(j<=aux)
        {
            i-=aux;
            sol+=aux*aux;
            calc(i, j, aux/2);
        }
        else
        {
            i-=aux;
            j-=aux;
            sol+=2*aux*aux;
            calc(i, j, aux/2);
        }
    }
}

int main()
{
    fin>>k>>b>>a;aux=1;
    while(k>0)
    {
        aux*=2;
        k--;
    }
    if(a==1&&b==1)
        fout<<0;
    else
        calc(a, b,aux/2);
    fout<<sol;
    fin.close();
    fout.close();
    return 0;
}