33OJ
登录 注册

C. 按位与

    传统题 文件IO:and 1000ms 1024MiB

按位与

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

按位与

题目描述

小 R 有 nn 个非负整数 a1,a2,…,ana_1, a_2, \ldots, a_n。

小 X 给了小 R 一个正整数 mm,并要求小 R 从这 nn 个非负整数中选出恰好 mm 个,使得选出的 mm 个数的二进制按位与的值最大。

两个非负整数的按位与:把两个数写成二进制(高位补零到相同长度),逐位比较,两位都为 11 时结果的这一位为 11,否则为 00。例如 3&5=13 \mathbin{\&} 5 = 1。C++ 中按位与写作 &。

你需要帮助小 R 求出,他能选出的 mm 个数的按位与的最大值。

输入格式

从文件 and.in 中读入数据。

输入的第一行包含两个正整数 n,mn, m。

输入的第二行包含 nn 个非负整数 a1,a2,…,ana_1, a_2, \ldots, a_n。

输出格式

输出到文件 and.out 中。

输出一行一个非负整数,表示小 R 能选出的 mm 个数的按位与的最大值。

4 2
3 15 12 12
12

样例 1 解释

小 R 有 44 个非负整数:3,15,12,123, 15, 12, 12。

  • 若小 R 选择 3,153, 15,则按位与的值为 3&15=33 \mathbin{\&} 15 = 3;
  • 若小 R 选择 3,123, 12,则按位与的值为 3&12=03 \mathbin{\&} 12 = 0;
  • 若小 R 选择 15,1215, 12,则按位与的值为 15&12=1215 \mathbin{\&} 12 = 12;
  • 若小 R 选择 12,1212, 12,则按位与的值为 12&12=1212 \mathbin{\&} 12 = 12。

因此,小 R 能选出的 mm 个数的按位与的最大值为 1212。

3 3
31 15 7
7

样例 2 解释

若小 R 选择 31,15,731, 15, 7,则按位与的值为 31&15&7=731 \mathbin{\&} 15 \mathbin{\&} 7 = 7。可以证明,小 R 能选出的 mm 个数的按位与的最大值为 77。

样例 3

见 and3.in 与 and3.ans。

数据范围

对于所有测试数据,保证:

  • 1≤m≤n≤2×1051 \le m \le n \le 2 \times 10^5;
  • 对于所有 ii(1≤i≤n1 \le i \le n),0≤ai<2300 \le a_i < 2^{30}。

子任务

本题共 20 个测试点,按测试点计分:

测试点 分值 每个测试点 特殊性质
1∼41 \sim 4 2020 55 n≤10n \le 10
5∼85 \sim 8 n≤2000n \le 2000,ai<210a_i < 2^{10}
9∼129 \sim 12 n≤2000n \le 2000,ai<230a_i < 2^{30}
13∼1613 \sim 16 n≤2×105n \le 2 \times 10^5,ai<220a_i < 2^{20}
17∼2017 \sim 20 n≤2×105n \le 2 \times 10^5,ai<230a_i < 2^{30}

每个测试点单独评分,全部测试点的得分之和即为本题得分。

CSP-J 2026 批量测试

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-11-5 0:00
结束于
2026-11-5 2:00
持续时间
2 小时
主持人
参赛人数
1492