Submission #805211

#TimeUsernameProblemLanguageResultExecution timeMemory
805211Essa2006Rack (eJOI19_rack)C++14
100 / 100
13 ms4052 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define endl '\n'
#define FF first
#define SS second
#define all(a) a.begin(), a.end()
#define mod (ll)(1000000007)
int add(ll a, ll b){
    ll res=a+b;
    return res%mod;
}
int mul(ll a, ll b){
    a%=mod, b%=mod;
    ll res=a*b;
    return res%mod;
}
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    ll n, k;
    cin>>n>>k;
    vector<int>Pr(n+1);
    Pr[0]=1;
    for(int i=1;i<=n;i++){
        Pr[i]=mul(Pr[i-1], 2);
    }
    ll ans=1;
    for(int i=n-1;i>=0;i--){
        if(k%2==0)
            ans=add(ans, Pr[i]);
        k=(k+1)/2;
    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...