← Home
write a go solution for Description:
You are given an array a consisting of n nonnegative integers.

Let's define the prefix OR array b as the array b_i=a_1~mathsfOR~a_2~mathsfOR~...~mathsfOR~a_i, where mathsfOR represents the bitwise OR operation. In other words, the array b is formed by computing the mathsfOR of every prefix of a.

You are asked to rearrange the elements of the array a in such a way that its prefix OR array is lexicographically maximum.

An array x is lexicographically greater than an array y if in the first position where x and y differ, x_i>y_i.

Input Format:
The first line of the input contains a single integer t (1<=t<=100) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer n (1<=n<=2*10^5) — the length of the array a.

The second line of each test case contains n nonnegative integers a_1,ldots,a_n (0<=a_i<=10^9).

It is guaranteed that the sum of n over all test cases does not exceed 2*10^5.

Output Format:
For each test case print n integers — any rearrangement of the array a that obtains the lexicographically maximum prefix OR array.

Note:
None. Output only the code with no comments, explanation, or additional text.