Submission #581114

#TimeUsernameProblemLanguageResultExecution timeMemory
581114masmc05Rack (eJOI19_rack)C++17
100 / 100
2 ms212 KiB
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#define int long long
using namespace std;
const long long mod=1e9+7;
long long logExp(long long num, long long e){
    if (e == 1) return num;
    if (e == 0) return 1;
    long long fin = logExp(num, e >> 1) % mod;
    fin = (fin * fin) % mod;
    if (e & 1) fin = (fin * num) % mod;
    return fin;
}
int32_t main()
{
    long long n, k;
    cin >> n >> k;
    long long res = 0;
    k--;
    for (long long i = n - 1; i >= 0; i--) {
        int child = k & 1;
        k = k >> 1;
        if (child == 1) res = (res + logExp(2, i) % mod ) % mod;
    }
    cout << (res + 1) % mod;

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