Pagini recente » Cod sursa (job #351718) | Istoria paginii utilizator/zgupufi | Monitorul de evaluare | Cod sursa (job #696574) | Cod sursa (job #1774083)
#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;
}