Pagini recente » preONI 2007, Runda 4, Clasa a 9-a si gimnaziu | Cod sursa (job #2382145) | Cod sursa (job #2020117) | Cod sursa (job #1549085) | Cod sursa (job #1773956)
#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;
}