Submission #1213362

#TimeUsernameProblemLanguageResultExecution timeMemory
1213362vincentbucourt1Rack (eJOI19_rack)C++20
100 / 100
0 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
void fastIO(){ios_base::sync_with_stdio(false),cin.tie(0);}
#define int long long

const int MOD = (int)1e9 + 7;

int N, K;

int binExpo (int base, int expo) {
    int res = 1;
    while (expo > 0) {
        if (expo % 2 == 1) {
            res *= base;
            res %= MOD;
        }
        base *= base;
        base %= MOD;
        expo /= 2;
    }
    return res;
}

signed main() {
    fastIO();
    cin >> N >> K;
    K--;
    int ans = 1;
    int i = 0;
    while (K > 0) {
        if (K % 2 == 1) {
            ans += binExpo(2, N-i-1);
            ans %= MOD;
        }
        K /= 2;
        i++;
    }
    cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...