问题 E: Madoka and zzuli

问题 E: Madoka and zzuli

时间限制: 1Sec 内存限制:128 MB
提交:109 解决:18
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述
Madoka要报名zzuli。但在入学计算机科学考试期间,她偶然发现了一项艰巨的任务:

AND 表示按位与,OR 表示按位或。

你有一个长度为 n 的数组 a 和一个非负整数 k 。你可以在 a 数组上做以下操作:

选出一个下标 i (1<= i<= n),将 ai替换为 ( aiOR 2^j) ,(0 <=j<= 30).也就是说将二进制下的 ai的第 j+1 位赋为 1.

最多做 k 次操作。

输出操作后 a 1AND a 2AND ...... AND a n的最大值。

为Madoka解决这个问题,帮助她进入 `zzuli` !
输入
输入的第一行包含一个整数 t (1 <= t <= 100) — 测试用例的数量。测试用例的描述如下。

每个测试用例的第一行包含整数 n 和 k (1 <= n <= 2 * 10^5,0 <= k <= 10^9).

第二行是数组 a 的 n 个数 a 1,a 2... a n(0 <= ai< 2^31 )

保证所有测试用例中的n总和不超过 2 * 10^5
输出
输出经过最多k次操作后 a 1 AND a 2 AND ...... AND a n的最大值。
样例输入 Copy
4 3 2 2 1 1 7 0 4 6 6 28 6 6 12 1 30 0 4 4 3 1 3 1
样例输出 Copy
2 4 2147483646 1073741825