100 atcoder#ABC117D. [ABC117D] XXOR

[ABC117D] XXOR

配点 : 400400

問題文

NN 個の非負整数 A1,A2,...,ANA_1, A_2, ..., A_N および非負整数 KK が与えられます。

00 以上 KK 以下の整数 XX に対して、f(X)=(Xf(X) = (X XOR A1)A_1) ++ (X(X XOR A2)A_2) ++ ...... ++ (X(X XOR AN)A_N) とします。

ここで、非負整数 a,ba, b に対して aa XOR bbaabb のビットごとの排他的論理和を表します。

ff の最大値を求めてください。

XOR とは

整数 A,BA, B のビットごとの排他的論理和 XX は、以下のように定義されます。

  • XX を二進表記した際の 2k2^k (k0k \geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、33 XOR 5=65 = 6 となります (二進数表記すると: 011011 XOR 101=110101 = 110)。

制約

  • 入力は全て整数である
  • 1N1051 \leq N \leq 10^5
  • 0K10120 \leq K \leq 10^{12}
  • 0Ai10120 \leq A_i \leq 10^{12}

入力

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

NN KK

A1A_1 A2A_2 ...... ANA_N

出力

ff の最大値を出力せよ。

3 7
1 6 3
14

f(4)=(4f(4) = (4 XOR 1)+(41) + (4 XOR 6)+(46) + (4 XOR 3)=5+2+7=143) = 5 + 2 + 7 = 14 が最大です。

4 9
7 4 0 3
46
1 0
1000000000000
1000000000000