#include "bits/stdc++.h"
#define ll long long
#define ff first
#define ss second
using namespace std;
const ll mod = 1000000007;
const ll INF = 1e18;
void solve(){
ll n,k;
cin>>n>>k;
pair<ll,bool>m[n+5];
ll m1[n+5];
m1[0] = 1LL;
m[0] = {1LL,false};
for(ll i = 1;i<=n;++i){
m1[i] = (m1[i-1] * 2LL)%mod;
m[i].ff = (m[i-1].ff * 2LL);
m[i].ss = (m[i-1].ss) | (m[i].ff > k);
}
ll id,cur;
id = cur = 1LL;
for(ll i = 1;i<=n;++i){
ll x = m[n-i].ff;
if(m[n-i].ss || x + cur > k)
continue;
cur += x;
id = (id + m1[i-1])%mod;
}
cout<<id;
}
int main(){
// freopen("file.in","r",stdin);
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |