#include<bits/stdc++.h>
using namespace std;
int binexp(long long a){
if(a==0) return 1;
if(a==1) return 2;
if(a&1) return (2*binexp(a/2)*binexp(a/2))%1000000007;
return (binexp(a/2)*binexp(a/2))%1000000007;
}
int main(){
long long n, k; cin >> n >> k; int sol[n]; for(int i = 0; i < n; i++) sol[i]=0; int ans = 1;
for(int i = 0; i < min(n,18ll); i++){
if((k-1)%binexp(i+1)>=binexp(i)) sol[i]=1;
}
for(int i = 0; i < min(n,18ll); i++){
ans=(ans+sol[i]*binexp(n-i-1))%1000000007;
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |