Submission #767337

#TimeUsernameProblemLanguageResultExecution timeMemory
767337ihcekerRack (eJOI19_rack)C++14
40 / 100
1 ms340 KiB
#include<bits/stdc++.h>
#define int long long
#define MOD 1000000007
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

using namespace std;

int fp(int a,int b){
	if(b==0)return 1;
	int t=fp(a,b/2);
	t=(t*t)%MOD;
	if(b%2)return (t*a)%MOD;
	return t;
}

int32_t main(){
	int n,k;
	cin>>n>>k;
	int ans=1;
	k--;
	for(int i=1;i<=1e18;i*=2){
		if(k&i){
			ans=(ans+(fp(2,n-1)*fp(i,MOD-2))%MOD)%MOD;
		}
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...