题目描述
長さ N の非負整数列 A=(A1,A2,…,AN) が与えられます。あなたは以下の操作を M 回以下行うことができます。(1 回も行わなくてもよいです。)
- 1 ≤ i ≤ N を満たす整数 i を選び、Ai を 1 増やす。
その後、A の中から K 要素を選びます。
選んだ K 要素のビット単位 AND の最大値を求めてください。
ビット単位 AND 演算とは 整数 A, B のビット単位 AND、A AND B は以下のように定義されます。
- A AND B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち両方が 1 であれば 1、そうでなければ 0 である。
例えば、3 AND 5 = 1 となります (二進表記すると: 011 AND 101 = 001)。
一般に k 個の整数 p1, p2, p3, …, pk のビット単位 AND は $ (\dots\ ((p_1\ \mathrm{AND}\ p_2)\ \mathrm{AND}\ p_3)\ \mathrm{AND}\ \dots\ \mathrm{AND}\ p_k) $ と定義され、これは p1, p2, p3, … pk の順番によらないことが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる。
N M K A1 A2 … AN
输出格式
答えを出力せよ。
题目大意
给定一个非负整数序列,可以将一些整数变大,总量不超过 M ,从中选 K 个整数,求这 K 个整数的最大位与运算值。
translate by @wsfxk (uid=376161)
4 8 2
1 2 4 8
10
5 345 3
111 192 421 390 229
461
提示
制約
- 1 ≤ K ≤ N ≤ 2 × 105
- 0 ≤ M < 230
- 0 ≤ Ai < 230
- 入力は全て整数である。
Sample Explanation 1
以下のような手順を踏むことで 選んだ 2 要素の AND として 10 を達成できます。 - A3 を選ぶ操作を 6 回行う。A3 = 10 となる。 - A4 を選ぶ操作を 2 回行う。A4 = 10 となる。 - A3,A4 を選ぶ。2 要素の AND は 10 である。 選んだ 2 要素の AND を 11 以上にすることはできないので、解は 10 です。