Submission #1151097

#TimeUsernameProblemLanguageResultExecution timeMemory
1151097yamtllqRack (eJOI19_rack)C++20
40 / 100
1094 ms328 KiB
#include <bits/stdc++.h>

using namespace std;

int n;
const int mod = 1e9 + 7;
long long k;
int arr[1000001];

int f(long long i){
	//cout << i << ' ';
	if (i == 1){
		return 1;
	}
	int p = 0;
	int s = 1;
	while (s * 2 < i){
		s *= 2;
		p++;
	}
	return (f(i - s) + arr[n - p - 1]) % mod;
}

int main(){
	cin >> n >> k;
	arr[0] = 1;
	for (int i = 1; i <= n; i++){
		arr[i] = (arr[i - 1] * 2) % mod;
	}
	cout << f(k);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...