Submission #237661

#TimeUsernameProblemLanguageResultExecution timeMemory
237661tb_03Rack (eJOI19_rack)C++14
40 / 100
5 ms640 KiB
#include <iostream>

using namespace std;
typedef unsigned long long ll;

const ll modulo = 1000000007;
int n, k;
bool ans[1000005];

void recursiva(int level, int casacos)
{
  if (level == n)
    return;

  if (casacos % 2 == 0)
    recursiva(level + 1, casacos / 2);
  else
  {
    ans[level] = true;
    recursiva(level + 1, (casacos - 1) / 2);
  }
}

int main()
{
  cin >> n >> k;
  recursiva(0, k - 1);
  int res = 0;

  for (int i = 0; i < n; i++)
    res = ((res << 1) | ans[i]) % modulo;

  cout << res + 1 << endl;
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...