Preparando MOJI

XOR Inverse

2000ms 524288K

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).

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:

First line contains a single integer $$$n$$$ ($$$1 \le n \le 3 \cdot 10^5$$$) — the number of elements in $$$a$$$.

Second line contains $$$n$$$ space-separated integers $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ ($$$0 \le a_i \le 10^9$$$), where $$$a_i$$$ is the $$$i$$$-th element of $$$a$$$.

Output:

Output two integers: the minimum possible number of inversions in $$$b$$$, and the minimum possible value of $$$x$$$, which achieves those number of inversions.

Sample Input:

4
0 1 3 2

Sample Output:

1 0

Sample Input:

9
10 7 9 10 7 5 5 3 5

Sample Output:

4 14

Sample Input:

3
8 10 3

Sample Output:

0 8

Note:

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.

Informação

Codeforces

Provedor Codeforces

Código CF1416C

Tags

bitmasksdata structuresdivide and conquerdpgreedymathsortingsstringstrees

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:06:42

Relacionados

Nada ainda