Pagini recente » Cod sursa (job #810360) | Cod sursa (job #883481) | Cod sursa (job #1037971) | Cod sursa (job #2513317) | Cod sursa (job #2644314)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
ll k,col,lin;
ll nrmuchii(int niv)
{
return (1<<niv+1)-1;
}
ll val(int nivel,int linie,int coloana)
{
if(nivel==1)
{
if(linie==1)
{
if(coloana==1)
return 0;
if(coloana==2)
return 3;
}
if(linie==2)
{
if(coloana==1)
return 1;
if(coloana==2)
return 2;
}
}
if(linie>(1<<nivel-1))
{
if(coloana>(1<<nivel-1))
return 2*nrmuchii(nivel-1)+2+val(nivel-1,linie-(1<<nivel-1),coloana-(1<<nivel-1));
else
return nrmuchii(nivel-1)+1+val(nivel-1,linie-(1<<nivel-1),coloana);
}
else
{
if(coloana<=(1<<nivel-1))
return val(nivel-1,coloana,linie);
else
return 3*nrmuchii(nivel-1)+3+val(nivel-1,(1<<nivel)-coloana+1,(1<<nivel-1)-linie+1);
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
fin>>k>>col>>lin;
fout<<val(k,lin,col);
return 0;
}