# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
237589 | tb_03 | Rack (eJOI19_rack) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
using namespace std;
typedef unsigned long long ll;
const ll modulo = 1000000007;
int n, k;
ll ans = 1;
void recursiva(int level, int casacos)
{
if (level == 0)
return;
if (casacos % 2 == 0)
recursiva(level - 1, casacos / 2);
else
{
ans = (((ll)powl(2, (level - 1)) % modulo) + ans) % modulo;
recursiva(level - 1, (casacos - 1) / 2);
}
}
int main()
{
cin >> n >> k;
recursiva(n, k - 1);
cout << ans << endl;
return 0;
}