#669. 邪恶的类人生物(evil)

邪恶的类人生物(evil)

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:evil.in

输出:evil.out

题目描述

某空间站有 n n 名宇航员。编号为 i i (1in 1 \le i \le n ) 的宇航员力量值为 ai a_i

一个邪恶的类人生物潜入了空间站。该类人生物的初始力量值为 h h 。此外,它还随身携带了两瓶绿色血清和一瓶蓝色血清。

在一秒钟内,类人生物可以执行以下三种操作之一:

  1. 吸收一名力量值严格小于类人生物当前力量值的宇航员;
  2. 使用一瓶绿色血清(如果还有剩余);
  3. 使用一瓶蓝色血清(如果还有剩余)。

当力量值为 ai a_i 的宇航员被吸收后,该宇航员消失,类人生物的力量值增加 ai2 \lfloor \frac{a_i}{2} \rfloor ,即 ai2 \frac{a_i}{2} 的整数部分。例如,如果吸收力量为 4 4 的宇航员,力量增加 2 2 ;吸收力量为 7 7 的宇航员,力量增加 3 3

使用绿色血清后,该血清消失,类人生物的力量值变为原来的 2 2 倍。

使用蓝色血清后,该血清消失,类人生物的力量值变为原来的 3 3 倍。

类人生物想知道,如果采取最优策略,它最多能吸收多少名宇航员。

输入格式

每个测试点的第一行包含一个整数 t t (1t104 1 \le t \le 10^4 ) —— 测试用例的数量。

每个测试用例的第一行包含两个整数 n n (1n2105 1 \le n \le 2 \cdot 10^5 ) —— 宇航员的数量,以及 h h (1h106 1 \le h \le 10^6 ) —— 类人生物的初始力量。

第二行包含 n n 个整数 ai a_i (1ai108 1 \le a_i \le 10^8 ) —— 各宇航员的力量值。

保证所有测试用例的 n n 之和不超过 2105 2 \cdot 10^5

输出格式

对于每个测试用例,在单独的一行中输出类人生物最多能吸收的宇航员数量。

输入输出样例

8
4 1
2 1 8 9
3 3
6 2 60
4 5
5 1 100 5
3 2
38 6 3
1 1
12
4 6
12 12 36 100
4 1
2 1 1 15
3 5
15 1 13
4
3
3
3
0
4
4
3

说明/提示

在第一个样例中,你可以按以下步骤操作:

  1. 使用绿色血清。h=12=2 h = 1 \cdot 2 = 2
  2. 吸收宇航员 2。h=2+12=2 h = 2 + \lfloor \frac{1}{2} \rfloor = 2
  3. 使用绿色血清。h=22=4 h = 2 \cdot 2 = 4
  4. 吸收宇航员 1。h=4+22=5 h = 4 + \lfloor \frac{2}{2} \rfloor = 5
  5. 使用蓝色血清。h=53=15 h = 5 \cdot 3 = 15
  6. 吸收宇航员 3。h=15+82=19 h = 15 + \lfloor \frac{8}{2} \rfloor = 19
  7. 吸收宇航员 4。h=19+92=23 h = 19 + \lfloor \frac{9}{2} \rfloor = 23