I would like to explain the Gaussian Elimination method which I have used and got AC in 0.00 The link to my solution. (sorry for some dubugging statements in it).

- The idea here is to choose a no.

which has MSB with maximum value.

With a little thinking, we will get

the max(array) will have this

feature. Say, maximum of array is a

k-bit no. and that no. is M. Now,

there can be multiple no.s which are

k-bit no.s and have the same

highest-value bit as ‘1’. So in that

case we will EX-OR each of them with

the M and put them again input array

(ideally, we can choose any one of

those k-bit no.s as M and put others

in array after ex-oring with it). At

the same time we will keep the no. M

in some other array say x[]. - We will keep doing step 1 until we

get 0 as maximum in the array i.e.

this loop will run for iterations =

no. of bit the maximum of array is. - Now will have a x[] array which will

be of size = no. of bit the maximum

of array is - Now we will initialize the answer

variable to given K (because we want

it compulsorily) and loop for each

value in array x[], if value of

answer variable is going to increase

with the inclusion of ith element,

we will update the answer variable

with the new value as answer^x[i],

else we will keep it as is. - Finally returning the value of

answer solves our problem.

About my solution:

Bucket[i] contains all i-bit no.s

the M chosen is first element of bucket i.e. Bucket[i][0]

x[] is modified_array[]