#ATarc146b. [ARC146B] Plus and AND

[ARC146B] Plus and AND

题目描述

给定一个长度为 NN 的非负整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N)。你可以进行不超过 MM 次如下操作(也可以一次都不进行):

  • 选择一个满足 1iN1 \leq i \leq N 的整数 ii,将 AiA_i 增加 11

操作结束后,从 AA 中选择 KK 个元素。

请你求出所选 KK 个元素的按位与(bitwise AND)的最大值。

按位与(bitwise AND)运算的定义如下:
对于整数 A,BA,BAABB 的按位与 AANDBA \mathrm{AND} B,其二进制表示中每一位 2k2^kk0k \geq 0)的数值为 AABB 的该位都为 11 时为 11,否则为 00

例如,3AND5=13 \mathrm{AND} 5 = 1(二进制为 011AND101=001011 \mathrm{AND} 101 = 001)。
一般地,kk 个整数 p1,p2,,pkp_1,p_2,\dots,p_k 的按位与定义为 $(\dots((p\_1 \mathrm{AND} p\_2) \mathrm{AND} p\_3)\dots\mathrm{AND} p\_k)$,并且可以证明与顺序无关。

输入格式

输入从标准输入中给出,格式如下:

NN MM KK A1A_1 A2A_2 \dots ANA_N

输出格式

输出答案。

样例 1

输入

4 8 2
1 2 4 8

输出

10

样例 2

输入

5 345 3
111 192 421 390 229

输出

461

说明/提示

限制条件

  • 1KN2×1051 \leq K \leq N \leq 2 \times 10^5
  • 0M<2300 \leq M < 2^{30}
  • 0Ai<2300 \leq A_i < 2^{30}
  • 输入均为整数。

样例解释 1

可以按如下步骤使得选出的 22 个元素的按位与达到 1010

  • A3A_3 进行 66 次操作,使 A3=10A_3=10
  • A4A_4 进行 22 次操作,使 A4=10A_4=10
  • 选择 A3,A4A_3,A_4,这两个元素的按位与为 1010

无法使选出的 22 个元素的按位与达到 1111 或更大,因此答案为 1010

由 ChatGPT 4.1 翻译