#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 2;
const int MOD = 1e9 + 7;
inline int add(int a, int b) {
return (a + b >= MOD) ? a + b - MOD : a + b;
}
inline int mul(int a, int b) {
return (long long) a * b % MOD;
}
int n, p[N];
long long k;
int main() {
cin >> n >> k;
k -= 1;
p[0] = 1;
for (int i = 1; i < n; ++i) {
p[i] = mul(p[i - 1], 2);
}
int ans = 0;
for (int i = 0; (1LL << i) <= k; ++i) {
if (k & 1LL << i) {
ans = add(ans, p[n - 1 - i]);
}
}
cout << add(ans, 1) << "\n";
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |