Submission #1118984

#TimeUsernameProblemLanguageResultExecution timeMemory
1118984Dan4LifeRack (eJOI19_rack)C++17
40 / 100
2 ms760 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define int long long
#define sz(a) (int)a.size()
using ar2 = array<int,2>;
const int N = (int)1e6+10;
const int INF = (int)1e18;
int n, k;
const int MOD = (int)1e9+7;
int poww(int a, int b){
	if(!b) return 1;
	int x = poww(a,b/2);
	x*=x, x%=MOD;
	if(b&1) x*=a, x%=MOD;
	return x;
}
int32_t main(){
	cin >> n >> k;
	int l = 1, r = poww(2,n);
	while(k and l!=r){
		int mid = (l+r)/2;
		if(k%2) k/=2, k++, r = mid;
		else k/=2, l=(mid+1)%MOD;
	}
	cout << l << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...