比赛 |
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;
}