Cod sursa(job #1773956)

Utilizator blackmanta45Andrei blackmanta45 Data 8 octombrie 2016 13:32:21
Problema Fractal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
using namespace std;
ifstream fin ("fractal.in");
ofstream fout ("fractal.out");
int i,j,n,k;
long long sol;
int rezolva (int i, int j, int n, long long &sol) {
    int k=0,x=0;
    k=(1<<(n*2));
    k/=4;
    x=(1<<n);

    if(i==1 && j==1){
        return 0;
    }
    else
        if(i==1 && j==2){
            sol+=3;
            return 0;
        }
        else
            if(i==2 && j==1){
                sol+=1;
                return 0;
            }
            else
                if(i==2 && j==2){
                    sol+=2;
                    return 0;
                }

    if(i>x/2 && j>x/2){
        sol+=2*k;
        return rezolva (x-i,x-j,n-1,sol);
    }
    if(i>x/2 && j<=x/2){
        sol+=k;
        return rezolva (x-i,j,n-1,sol);
    }
    if(i<=x/2 && j<=x/2){
        return rezolva (j,i,n-1,sol);
    }
    if(i<=x/2 && j>x/2){
        sol+=3*k;
        return rezolva (x-j+1,x/2-i+1,n-1,sol);
    }

}

int main () {
    fin>>n>>j>>i;
    sol=0;
    k=(1<<(n*2-2));

    rezolva (i,j,n,sol);
    fout<<sol;
}