atcoder#ABC304G. [ABC304G] Max of Medians

[ABC304G] Max of Medians

题目描述

長さ 2N 2N の数列 A = (A1, A2, , A2N) A\ =\ (A_1,\ A_2,\ \ldots,\ A_{2N}) が与えられます。

数列 A A の要素を並べ替えることによって長さ N N の数列 $ (A_1\ \oplus\ A_2,\ A_3\ \oplus\ A_4,\ \ldots,\ A_{2N-1}\ \oplus\ A_{2N}) $ の中央値として得ることのできる最大の値を求めてください。

ここで、 \oplus はビットごとの排他的論理和を表します。

ビットごとの排他的論理和とは? 非負整数 A, B A,\ B のビットごとの排他的論理和 A  B A\ \oplus\ B は、以下のように定義されます。 - A  B A\ \oplus\ B を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、A, B A,\ B を二進表記した際の 2k 2^k の位の数のうち一方のみが 1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、3  5 = 6 3\ \oplus\ 5\ =\ 6 となります (二進表記すると: 011  101 = 110 011\ \oplus\ 101\ =\ 110 )。 また、長さ L L の数列 B B に対して B B の中央値とは、B B を昇順にソートして得られる数列を B B' として B B'  L2  + 1 \lfloor\ \frac{L}{2}\ \rfloor\ +\ 1 番目の値のことを指します。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \ldots A2N A_{2N}

输出格式

答えを出力せよ。

题目大意

给定一个长度为 2N(1N105)2N(1\le N\le 10^5) 的序列 {Ai}(0Ai<230)\{A_i\}(0\le A_i< 2^{30}),你需要将其中元素两两配对并求异或和,得到 NN 个数的集合 BB。最大化 BB 的中位数,其中集合的中位数定义为将集合排序后得到序列的第 N2+1\lfloor\dfrac N2\rfloor + 1 项。

4
4 0 0 11 2 7 9 5
14
1
998244353 1000000007
1755654
5
1 2 4 8 16 32 64 128 256 512
192

提示

制約

  • 1  N  105 1\ \leq\ N\ \leq\ 10^5
  • 0  Ai < 230 0\ \leq\ A_i\ <\ 2^{30}
  • 入力はすべて整数

Sample Explanation 1

A A (5, 0, 9, 7, 11, 4, 0, 2) (5,\ 0,\ 9,\ 7,\ 11,\ 4,\ 0,\ 2) と並べ替えると、$ (A_1\ \oplus\ A_2,\ A_3\ \oplus\ A_4,\ A_5\ \oplus\ A_6,\ A_7\ \oplus\ A_8)\ =\ (5,\ 14,\ 15,\ 2) $ となり、この数列の中央値は 14 14 です。 $ (A_1\ \oplus\ A_2,\ A_3\ \oplus\ A_4,\ A_5\ \oplus\ A_6,\ A_7\ \oplus\ A_8) $ の中央値が 15 15 以上となるように A A を並べ替えることは不可能であるため、14 14 を出力します。