Submission #810879

#TimeUsernameProblemLanguageResultExecution timeMemory
810879AlphaMale06Rack (eJOI19_rack)C++14
100 / 100
1 ms304 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long
const int mod = 1e9+7;

int bs(int pw){
    if(pw<=0)return 1;
    if(pw==1)return 2;
    int ans = bs(pw/2);
    ans*=ans;
    ans%=mod;
    if(pw&1)ans*=2;
    return ans%mod;
}

signed main()
{
    int n, k;
    cin >> n >> k;
    int ans=1;
    int cnt=1;
    k--;
    while(k>0){
        if(k&1){
            ans+=bs(n-cnt);
        }
        ans%=mod;
        cnt++;
        k/=2;
    }
    cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...