Submission #776395

#TimeUsernameProblemLanguageResultExecution timeMemory
776395Tkm_algoRack (eJOI19_rack)C++17
40 / 100
122 ms16788 KiB
#include "bits/stdc++.h"

using namespace std;
using ll = long long;

vector<int> vis, ans;
int tt;

void rec(int x, int lx, int rx) {
	if (rx - lx == 1) {
		ans.push_back(rx);
		return;
	}
	int md = (lx + rx) / 2;
	if (vis[x] == 0) {
		rec(2 * x + 1, lx, md);
	} else {
		rec(2 * x + 2, md, rx);
	}
	vis[x] = (vis[x] + 1) % 2;
}

void solve() {
	int n, k;
	cin >> n >> k;
	n = pow(2, n);
	vis.assign(2 * n + 1, 0);
	rec(0, 0, n);
	for (int i = 0; i < n; i++) {
		rec(0, 0, n);
	}
	cout << ans[k - 1] << '\n';
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int test = 1;
	// cin >> test;
	
	while (test--) {
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...