#CF2128A. 回收中心

回收中心

每次测试时间限制:11
内存限制:256256 兆字节
题目描述 在回收中心有 nn 个垃圾袋,第 ii 个袋子的重量为 aia_i
每一秒,会按顺序发生两个动作:

  1. 你必须选择一个垃圾袋并将其销毁。
    • 如果该垃圾袋的重量 严格大于 cc,则花费 11 枚硬币;
    • 否则花费 00 枚硬币。
  2. 然后,剩余每个垃圾袋的重量都会乘以 22

问:销毁所有垃圾袋所需的最小硬币数是多少?


输入
每个测试点包含多个测试用例。第一行包含一个整数 tt1t10001 \le t \le 1000)——测试用例的数量。
每个测试用例的第一行包含两个整数 nncc1n301 \le n \le 301c1091 \le c \le 10^9)。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)——每个垃圾袋的重量。


输出
对于每个测试用例,输出一个整数——销毁所有垃圾袋所需的最小硬币数。


示例
输入

4
5 10
10 4 15 1 8
3 42
1000000000 1000000000 1000000000
10 30
29 25 2 12 15 42 14 6 16 9
10 1000000
1 1 1 1 1 1 1 1 1 864026633

输出

2
3
6
1

注释
下文中:

  • 蓝色数字表示免费销毁的垃圾袋,
  • 红色数字表示花费 11 硬币销毁的垃圾袋,
  • 黑色数字表示尚未销毁的垃圾袋。

在第一个测试用例中,一种方案如下:

初始:[10,4,15,1,8][10,4,15,1,8]
11 秒:销毁 1010(免费,因为 101010 \le 10),剩余袋子乘以 22[10,8,30,2,16][10,8,30,2,16]
22 秒:销毁 88(免费,因为 8108 \le 10),剩余乘以 22[10,8,60,4,32][10,8,60,4,32]
33 秒:销毁 3232(花费 11,因为 32>1032 > 10),剩余乘以 22[10,8,120,8,32][10,8,120,8,32]
44 秒:销毁 88(免费,8108 \le 10),剩余乘以 22[10,8,240,8,32][10,8,240,8,32]
55 秒:销毁 240240(花费 11240>10240 > 10

总共花费 22 枚硬币,可以证明这是最优的。

在第二个测试用例中,一种方案:

初始:[109,109,109][10^9,10^9,10^9]
11 秒:销毁 10910^9(花费 11,因为 109>4210^9 > 42),剩余乘以 22[109,2×109,2×109][10^9,2\times10^9,2\times10^9]
22 秒:销毁 2×1092\times10^9(花费 112×109>422\times10^9 > 42),剩余乘以 22[109,2×109,4×109][10^9,2\times10^9,4\times10^9]
33 秒:销毁 4×1094\times10^9(花费 114×109>424\times10^9 > 42

总共花费 33 枚硬币。