CF1742G.Orray

传统题 时间 2000 ms 内存 256 MiB 8 尝试 27 已通过 7 标签

Orray

题目描述

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

定义它的前缀按位或数组 bb 为:

$$b_i=a_1\mathbin{\mathrm{OR}}a_2\mathbin{\mathrm{OR}}\cdots\mathbin{\mathrm{OR}}a_i.$$

你需要重新排列数组 aa,使得到的前缀按位或数组 bb 的字典序最大。

两个数组 x,yx,y 的字典序比较规则为:在第一个满足 xi≠yix_i\ne y_i 的位置,若 xi>yix_i>y_i,则 xx 的字典序更大。

输入格式

第一行一个整数 tt(1≤t≤1001 \le t \le 100),表示测试组数。

每组测试数据包含两行:

  • 第一行一个整数 nn(1≤n≤2⋅1051 \le n \le 2\cdot10^5);
  • 第二行 nn 个非负整数 a1,…,ana_1,\ldots,a_n(0≤ai≤1090 \le a_i \le 10^9)。

保证所有测试数据的 nn 之和不超过 2⋅1052\cdot10^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

在线编程 IDE

建议全屏模式获得最佳体验