Submission #1035254

#TimeUsernameProblemLanguageResultExecution timeMemory
1035254juicyRack (eJOI19_rack)C++17
100 / 100
2 ms456 KiB
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "debug.h"
#else
#define debug(...) 42
#endif

int main() {
  ios::sync_with_stdio(false); cin.tie(nullptr);

  const int MD = 1e9 + 7;

  int N; long long K; cin >> N >> K;
  auto bpow = [&](int a, int b) {
    int res = 1;
    for (; b; a = (long long) a * a % MD, b /= 2) {
      if (b & 1) {
        res = (long long) res * a % MD;
      }
    }
    return res;
  };
  auto add = [&](int &x, int y) {
    if ((x += y) >= MD) {
      x -= MD;
    }
  };
  int res = 1;
  for (int i = 0; i < N; ++i) {
    if (K % 2 == 0) {
      add(res, bpow(2, N - i - 1));
    }
    K = (K + 1) / 2;
  }
  cout << res;
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...