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

You can swap the elements at positions i and j if a_i~mathsfXOR~a_j<4, where mathsfXOR is the bitwise XOR operation.

Find the lexicographically smallest array that can be made with any number of swaps.

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

Input Format:
The first line contains a single integer t (1<=t<=10^4) — the number of test cases.

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

The second line of each test case contains n integers a_i (0<=a_i<=10^9) — the elements of the array.

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

Output Format:
For each test case, output n integers — the lexicographically smallest array that can be made with any number of swaps.

Note:
For the first test case, you can swap any two elements, so we can produce the sorted array.

For the second test case, you can swap 2 and 1 (their mathsfXOR is 3), 7 and 5 (their mathsfXOR is 2), and 7 and 6 (their mathsfXOR is 1) to get the lexicographically smallest array.. Output only the code with no comments, explanation, or additional text.