Submission #672151

#TimeUsernameProblemLanguageResultExecution timeMemory
672151StavabRack (eJOI19_rack)C++14
100 / 100
100 ms296 KiB
#include <iostream>

using namespace std;

long long pow(int n)
{
    long long t = 1;
    for(int i = 1; i <= n; i++)
    {
        t *= 2;
        t %= 1000000007;
    }
    return t;
}

int main()
{
    long long n, k;
    cin >> n >> k;
    
    k = k - 1;
    long long ans = 0;
    for(int i = 1; i <= n; i++)
    {
        if(k % 2 == 1)
        {
            ans += pow(n - i);
            ans %= 1000000007;
        }
        
        k /= 2;
    }
    
    ans = ans + 1;
    ans %= 1000000007;
    
    cout << ans << '\n';
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...