


If ‘ARR’ is {1,2,3,4} and ‘K’ = 1, then after modification, ‘ARR’ should be {2,4,1,3} because ‘K-th’ (‘K’ = 1) of {2,4} is 0 and ‘K-th’ bit of {1,3} is 1.
The first line contains a single integer T representing the number of test cases.
The first line of each test case contains two single space-separated integers ‘N’ and ‘K’ representing size of the input ‘ARR’ and the ‘Kth’ bit as discussed above.
The next line of each test case contains ‘N’ single space-separated integers that represents the elements of the ‘ARR’.
For each test case, return the modified array as discussed above.
You don’t need to print anything, it has already been taken care of. Just implement the given function.
Can you do it in linear time?
1 <= T <= 10
1 <= N <= 10^4
1 <= ARR[i] <= 10^9
1 <= K <= 31
Time Limit: 1 sec
The idea is to simply iterate through the ‘ARR’ and check each element whether its ‘K-th’ bit is 0 or 1, and add the element to the respective group.
Here is the algorithm: