Submission #530178

#TimeUsernameProblemLanguageResultExecution timeMemory
530178TomkeMonkeRack (eJOI19_rack)C++17
100 / 100
10 ms296 KiB
#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;


int main(){

    int n;
    long long k;
    cin >> n >> k;
    k--;

    int wynik = 1;
    for(int i = 1; i <= n; i++){

        if(k%2 == 0) 
            wynik = ((long long)2 * wynik) % MOD;
        else 
            wynik = ((long long)2 * wynik + 1) % MOD;

        k /= 2;
    }

    int pow2 = 1;
    for(int i = 1; i <= n; i++) 
        pow2 = ((long long)2 * pow2) % MOD;

    cout << (wynik - (pow2 - 1) + MOD) % MOD << endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...