#CF4077. 或出最大

或出最大

题目描述

给你一个由 nn 个非负整数组成的数组 aa

让我们将前缀或数组 bb 定义为数组 bi=a1a2aib_i=a_1|a_2|…|a_i,其中 | 表示按位或运算。换句话说,数组 bb 是通过计算 aa前缀或来得到的。

要求您重新排列数组 aa 的元素,使其前缀或数组 bb 的字典序尽量大。

在数组 xx 和数组 yy 的元素首次出现不同时(记索引为 ii),如果 xi>yix_i>y_i,则数组 xx 的字典序大于数组 yy

输入格式

输入的第一行包含单个整数 t(1t100)t(1≤t≤100) 代表测试用例的数量。测试用例描述如下。

每个测试用例的第一行包含一个整数 n(1n2105)n(1≤n≤2⋅10^5) 代表数组 aa 的长度。

每个测试用例的第二行包含 nn 个非负整数 a1,,an(0ai109)a_1,…,a_n(0≤a_i≤10^9)

保证所有测试用例的 nn 之和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出 nn 个整数代表重排后的数组 aa,使得前缀或最大。

如果有多个可能结果,输出任意一个。

测试样例

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,前缀或数组为:b=[8,12,14,15]b=[8,12,14,15],没有更大的了。

对于样例2,还有很多其他方案,比如 a=[5,3,2,1,5,4,5]a=[5,3,2,1,5,4,5],其前缀或数组同为 b=[5,7,7,7,7,7,7]b=[5,7,7,7,7,7,7]