#CF2118C. 使其美丽

使其美丽

C. 使其美丽
每次测试时间限制:2 秒
每次测试内存限制:512 兆字节


题目描述

你有一个包含 nn 个整数的数组 aa
我们定义一个数 xx美丽度为它的二进制表示中 11 的个数。
我们定义一个数组的美丽度为它所包含的数的美丽度之和。

在一次操作中,你可以选择一个下标 ii1in1 \le i \le n),并将 aia_i 增加 11

请计算在最多进行 kk 次操作后,数组的最大美丽度。


输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t50001 \le t \le 5000),表示测试用例的数量。
接下来每个测试用例的描述如下:

  • 第一行包含两个整数 nnkk1n50001 \le n \le 50000k10180 \le k \le 10^{18}),分别表示数组长度和最大操作次数。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai1090 \le a_i \le 10^9),表示数组 aa

数据保证所有测试用例的 nn 之和不超过 50005000


输出格式

对于每个测试用例,输出一个整数,表示在最多 kk 次操作后能获得的最大美丽度。


示例

输入:

5
5 2
0 1 7 2 4
5 3
0 1 7 2 4
1 1
3
3 0
2 0 3
1 100000000000
0

输出:

8
9
2
3
36

提示

在第一个测试用例中,初始数组为 a=[0,1,7,2,4]a = [0,1,7,2,4]

  • 第一次操作在 i=1i=1,数组变为 [1,1,7,2,4][1,1,7,2,4]
  • 第二次操作在 i=4i=4,数组变为 [1,1,7,3,4][1,1,7,3,4]

该数组的美丽度为:1+1+3+2+1=81 + 1 + 3 + 2 + 1 = 8
另一个能达到同样美丽度的解是 [0,1,7,3,5][0,1,7,3,5]

在第三个测试用例中,数组为 [3][3]。由于不需要恰好使用 kk 次操作,最优方案是不进行操作。