Cod sursa(job #1774083)

Utilizator blackmanta45Andrei blackmanta45 Data 8 octombrie 2016 15:36:48
Problema Fractal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>
using namespace std;
ifstream fin ("fractal.in");
ofstream fout ("fractal.out");
int i,j,n,k,sol;

int rez(int i, int j, int n, int &sol){
    int aduna=(1<<(n*2-2)), comp=(1<<(n-1));
    if(n==1){
        if(i==1 && j==1){
            return 0;
        }
        else
            if(i==2 && j==1){
                sol++;
                return 0;
            }
            else
                if(i==2 && j==2){
                    sol+=2;
                    return 0;
                }
                else{
                    sol+=3;
                    return 0;
                }
    }
    else{
        if(i<=comp && j<=comp){
            return rez(j,i,n-1,sol);
        }
        else
            if(i>comp && j<=comp){
                sol+=aduna;
                return rez(i-comp,j,n-1,sol);
            }
            else
                if(i>comp && j>comp){
                    sol+=2*aduna;
                    return rez(i-comp,j-comp,n-1,sol);
                }
                else{
                    sol+=3*aduna;
                    return rez(comp*2-j+1,comp-i+1,n-1,sol);
                }
    }
}

int main () {
    fin>>n>>j>>i;
    rez(i,j,n,sol);
    fout<<sol;
}