Submission #999873

#TimeUsernameProblemLanguageResultExecution timeMemory
999873coolboy19521Rack (eJOI19_rack)C++17
100 / 100
0 ms348 KiB
#pragma GCC optimize("Ofast")
#include"bits/stdc++.h"

#define int long long

using namespace std;

const int md = 1e9 + 7;

int bp(int k, int b) {
    if (0 == b) return 1;
    int r = bp(k, b / 2);
    if (b % 2) return (r * r * k) % md;
    return (r * r) % md;
}

signed main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    int n, k;
    cin >> n >> k;

    k --;

    int r = 0;

    for (int i = 0; i < 62; i ++) {
        if (k & (1ll << i)) {
            (r += bp(2, n - i - 1)) %= md;
        }
    }

    cout << (r + 1) % md << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...