Submission #529876

#TimeUsernameProblemLanguageResultExecution timeMemory
529876tkwiatkowskiRack (eJOI19_rack)C++17
100 / 100
10 ms316 KiB
/*
	Zadanie: Rack
	Autor: Tomasz Kwiatkowski
*/

#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back

using namespace std;
typedef long long ll;

const int MAXN = 1e6 + 7;
const int MOD = 1e9 + 7;

int main()
{
	ios_base::sync_with_stdio(0), cin.tie(0);

	int n;
	long long k;
	cin >> n >> k;
	--k;
	int ans = 1;
	for (int i = 1; i <= n; ++i) {
		if (k % 2 == 0)
			ans = ((long long)2*ans) % MOD;
		else
			ans = ((long long)2*ans + 1) % MOD;
		k /= 2;
	}
	int pow2 = 1;
	for (int i = 1; i <= n; ++i)
		pow2 = ((long long)2*pow2) % MOD;
	cout << (ans - pow2 + 1 + MOD) % MOD << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...