CodeChef: June Challenge | Optimal Xor Set OPTSET | Python, Java, C++ Solution

Thunder Bitz
2 min readJun 5, 2021
Codechef

View problem on codechef

Find KK distinct numbers in the range such that the bitwise XOR of all the numbers is maximized. Print any set of these numbers that maximize the XOR.

Input

- The first line contains an integer TT, the number of test cases. Then the test cases follow.

- Each test case contains a single line of input, two integers NN, KK.

Output

For each test case, output KK distinct integers in any order as described in the problem.

Constraints

- 1≤T≤1041≤T≤104

- 1≤K≤N≤1061≤K≤N≤106

- The sum of NN over all queries is at most 4⋅1064⋅106.

- The sum of KK over all queries is at most 2⋅1062⋅106.

Subtasks

Subtask #1 (5 points):

- 1≤T≤501≤T≤50

- 1≤K≤N≤201≤K≤N≤20

Subtask #2 (20 points):

- 1≤T≤501≤T≤50

- 1≤K≤N≤2001≤K≤N≤200

- The sum of NN over all queries is at most 800800.

- The sum of KK over all queries is at most 400400.

Subtask #3 (75 points): original constraints

Sample Input

3

10 1

9 2

8 7

Sample Output

10

7 8

1 2 3 4 5 6 8

Explanation

Test Case 1: The only possible set is {10}{10} which gives the value 1010.

Test Case 2: The other possible set is {9,6}{9,6} which gives the value 9⊕6=15=7⊕89⊕6=15=7⊕8.

Test Case 3: The only possible set is {1,2,3,4,5,6,8}{1,2,3,4,5,6,8} which gives the value 1⊕2⊕3⊕4⊕5⊕6⊕8=151⊕2⊕3⊕4⊕5⊕6⊕8=15.

Solution

Due to copyright issues we won’t be able to update the solution here immediately. However you can download the code file from our telegram channel. So join our telegram channel for further updates. Keep tracking, the solution will be updated on this website soon.

Read more post Here

--

--