atcoder#ABC249G. [ABC249G] Xor Cards

[ABC249G] Xor Cards

配点 : 600600

問題文

NN 枚のカードがあり、1,,N1, \dots, N の番号が付けられています。カード i(1iN)i \, (1 \leq i \leq N) の表には整数 AiA_i、裏には整数 BiB_i が書かれています。

選んだカードの表に書かれた整数の排他的論理和が KK 以下となるように 11 枚以上の好きな枚数のカードを選ぶとき、選んだカードの裏に書かれた整数の排他的論理和としてあり得る最大値を求めてください。

排他的論理和とは

整数 a,ba, b の排他的論理和 aba \oplus b は、以下のように定義されます。

  • aba \oplus b を二進表記した際の 2k(k0)2^k \, (k \geq 0) の位の数は、a,ba, b を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、35=63 \oplus 5 = 6 となります(二進表記すると 011101=110011 \oplus 101 = 110)。 一般に kk 個の整数 p1,,pkp_1, \dots, p_k の排他的論理和は $(\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)$ と定義され、これは p1,,pkp_1, \dots, p_k の順番によらないことが証明できます。

制約

  • 1N10001 \leq N \leq 1000
  • 0K<2300 \leq K \lt 2^{30}
  • 0Ai,Bi<230(1iN)0 \leq A_i, B_i \lt 2^{30} \, (1 \leq i \leq N)
  • 入力は全て整数

入力

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

NN KK

A1A_1 B1B_1

\vdots

ANA_N BNB_N

出力

問題文中の条件を満たすようにカードを選ぶとき、選んだカードの裏に書かれた整数の排他的論理和としてあり得る最大値を出力せよ。ただし、条件を満たすようにカードを選ぶことができないときは 1-1 と出力せよ。

4 2
1 1
3 2
2 2
0 1
3

カード 1,21, 2 を選ぶことで、表に書かれた整数の排他的論理和は 22、裏に書かれた整数の排他的論理和は 33 となり、これが最大です。

1 2
3 4
-1

条件を満たすようにカードを選ぶことはできません。

10 326872757
487274679 568989827
267359104 968688210
669234369 189421955
1044049637 253386228
202278801 233212012
436646715 769734012
478066962 376960084
491389944 1033137442
214977048 1051768288
803550682 1053605300
1064164329