比赛 EYOI常规赛 4th 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 格雷码 最终得分 100
用户昵称 lihaoze 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-05-27 20:41:53
显示代码纯文本
#include <bits/stdc++.h>

using i64 = unsigned long long;

std::string solve(i64 n, i64 k) {
	if (n == 1) return std::string{"01"[k]};
	if (k >= i64{1} << (n - 1)) return '1' + solve(n - 1, (i64{1} << n - 1) + ((i64{1} << n - 1) - k - 1));
	return '0' + solve(n - 1, k);
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
    freopen("2019code.in", "r", stdin); 
    freopen("2019code.out", "w", stdout);
	i64 n{0}, k{0};
	std::cin >> n >> k;
	std::cout << solve(n, k) << '\n';
	return 0;
}