Creating Keys for StORages Has Become My Main Skill
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定两个整数 ,请构造一个长度为 的数组 ,作为编号为 的储藏室钥匙。
这个数组需要满足:
- $a_1 \operatorname{or} a_2 \operatorname{or} \cdots \operatorname{or} a_n=x$;
- 在所有满足上一条的数组中,集合 的 MEX 尽可能大。
这里 表示按位或。
定义为最小的非负整数 ,满足 ,并且所有 都属于 。
请对每组数据输出任意一个满足要求的数组。
输入格式
第一行包含一个整数 ,表示测试用例数量。
接下来 行,每行包含两个整数 ,表示数组长度和目标按位或值。
输出格式
对每个测试用例,输出一行 个整数 ,表示你构造出的钥匙数组。
如果存在多种合法答案,输出任意一种即可。
数据范围
- 所有测试用例的 之和不超过
- 输出的每个 需要满足
输入输出样例
输入
9
1 69
7 7
5 7
7 3
8 7
3 52
9 11
6 15
2 3
输出
69
6 0 3 4 1 2 5
4 1 3 0 2
0 1 2 3 2 1 0
7 0 6 1 5 2 4 3
0 52 0
0 1 8 3 0 9 11 2 10
4 0 3 8 1 2
0 3
样例说明
样例输出只展示了一种可行构造。只要数组整体按位或等于 ,并且 MEX 已经达到最大值,就会被判为正确。