#include <iostream>
#include <vector>
#include <cmath>
#include <bitset>
using namespace std;
int main(){
cin.tie(0);
ios::sync_with_stdio(0);
long long n,k;
cin>>n>>k;
k--;
bitset<1000001> bits=k;
//cout<<bits<<endl;
bitset<1000001> bitnew;
for(int i=0;i<n/2;i++){
bitnew[i]=bits[n-1-i];
bitnew[n-1-i]=bits[i];
//cout<<i<<endl;
}
if(n%2==1){
long long center=(n/2)+1;
bitnew[center-1]=bits[center-1];
//cout<<"center";
}
//cout<<bitnew<<endl;
long long mod=1000000007;
unsigned long long answ=1%mod;
long long current=1;
for(int i=0;i<n;i++){
if(bitnew[i]){
answ+=current;
}
current=(current*2)%mod;
}
answ=answ%mod;
cout<<answ<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |