AT_arc146_b [ARC146B] Plus and AND

题目描述

给定一个长度为 $N$ 的非负整数序列 $A=(A_1,A_2,\dots,A_N)$。你可以进行不超过 $M$ 次如下操作(也可以一次都不进行): - 选择一个满足 $1 \leq i \leq N$ 的整数 $i$,将 $A_i$ 增加 $1$。 操作结束后,从 $A$ 中选择 $K$ 个元素。 请你求出所选 $K$ 个元素的按位与(bitwise AND)的最大值。 按位与(bitwise AND)运算的定义如下: 对于整数 $A,B$,$A$ 和 $B$ 的按位与 $A \mathrm{AND} B$,其二进制表示中每一位 $2^k$($k \geq 0$)的数值为 $A$ 和 $B$ 的该位都为 $1$ 时为 $1$,否则为 $0$。 例如,$3 \mathrm{AND} 5 = 1$(二进制为 $011 \mathrm{AND} 101 = 001$)。 一般地,$k$ 个整数 $p_1,p_2,\dots,p_k$ 的按位与定义为 $(\dots((p_1 \mathrm{AND} p_2) \mathrm{AND} p_3)\dots\mathrm{AND} p_k)$,并且可以证明与顺序无关。

输入格式

输入从标准输入中给出,格式如下: > $N$ $M$ $K$ $A_1$ $A_2$ $\dots$ $A_N$

输出格式

输出答案。

说明/提示

### 限制条件 - $1 \leq K \leq N \leq 2 \times 10^5$ - $0 \leq M < 2^{30}$ - $0 \leq A_i < 2^{30}$ - 输入均为整数。 ### 样例解释 1 可以按如下步骤使得选出的 $2$ 个元素的按位与达到 $10$: - 对 $A_3$ 进行 $6$ 次操作,使 $A_3=10$。 - 对 $A_4$ 进行 $2$ 次操作,使 $A_4=10$。 - 选择 $A_3,A_4$,这两个元素的按位与为 $10$。 无法使选出的 $2$ 个元素的按位与达到 $11$ 或更大,因此答案为 $10$。 由 ChatGPT 4.1 翻译