CF1416C XOR Inverse
Description
You are given an array $ a $ consisting of $ n $ non-negative integers. You have to choose a non-negative integer $ x $ and form a new array $ b $ of size $ n $ according to the following rule: for all $ i $ from $ 1 $ to $ n $ , $ b_i = a_i \oplus x $ ( $ \oplus $ denotes the operation [bitwise XOR](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)).
An inversion in the $ b $ array is a pair of integers $ i $ and $ j $ such that $ 1 \le i < j \le n $ and $ b_i > b_j $ .
You should choose $ x $ in such a way that the number of inversions in $ b $ is minimized. If there are several options for $ x $ — output the smallest one.
Input Format
N/A
Output Format
N/A
Explanation/Hint
In the first sample it is optimal to leave the array as it is by choosing $ x = 0 $ .
In the second sample the selection of $ x = 14 $ results in $ b $ : $ [4, 9, 7, 4, 9, 11, 11, 13, 11] $ . It has $ 4 $ inversions:
- $ i = 2 $ , $ j = 3 $ ;
- $ i = 2 $ , $ j = 4 $ ;
- $ i = 3 $ , $ j = 4 $ ;
- $ i = 8 $ , $ j = 9 $ .
In the third sample the selection of $ x = 8 $ results in $ b $ : $ [0, 2, 11] $ . It has no inversions.