#CF4077. 或出最大
或出最大
题目描述
给你一个由 个非负整数组成的数组 。
让我们将前缀或数组 定义为数组 ,其中 |
表示按位或运算。换句话说,数组 是通过计算 的前缀或来得到的。
要求您重新排列数组 的元素,使其前缀或数组 的字典序尽量大。
在数组 和数组 的元素首次出现不同时(记索引为 ),如果 ,则数组 的字典序大于数组 。
输入格式
输入的第一行包含单个整数 代表测试用例的数量。测试用例描述如下。
每个测试用例的第一行包含一个整数 代表数组 的长度。
每个测试用例的第二行包含 个非负整数 。
保证所有测试用例的 之和不超过 。
输出格式
对于每个测试用例,输出 个整数代表重排后的数组 ,使得前缀或最大。
如果有多个可能结果,输出任意一个。
测试样例
5
4
1 2 4 8
7
5 1 2 3 4 5 5
2
1 101
6
2 3 4 2 3 4
8
1 4 2 3 4 5 7 1
8 4 2 1
5 2 1 3 4 5 5
101 1
4 3 2 2 3 4
7 1 4 2 3 4 5 1
样例说明
对于样例1,前缀或数组为:,没有更大的了。
对于样例2,还有很多其他方案,比如 ,其前缀或数组同为 。