106932024-04-09 18:57:14IgnácAkasztós tartócpp17Elfogadva 100/1008ms4208 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	long long n, k;
	cin >> n >> k;
	k--;
	vector<bool> bin;
	long long power = 2;
	while (k > 0) {
		bin.push_back(k % power != 0);
		k -= k % power;
		power *= 2;
	}

	bin.resize(n, 0);
	long long ans = 0;
	power = 1;
	for (int i = n - 1; i >= 0; i--) {
		ans += power * bin[i];
		ans %= 1000000007;
		power *= 2;
		power %= 1000000007;
	}

	cout << ans + 1;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask120/20
1Elfogadva3ms1808 KiB
2Elfogadva3ms2056 KiB
3Elfogadva3ms2304 KiB
4Elfogadva3ms2556 KiB
5Elfogadva3ms2768 KiB
subtask220/20
1Elfogadva3ms2952 KiB
2Elfogadva3ms3156 KiB
3Elfogadva2ms3396 KiB
4Elfogadva2ms3344 KiB
5Elfogadva3ms3316 KiB
subtask360/60
1Elfogadva2ms3436 KiB
2Elfogadva3ms3512 KiB
3Elfogadva3ms3524 KiB
4Elfogadva3ms3772 KiB
5Elfogadva8ms4208 KiB