一、题目
1.具体题目
有一台售卖柠檬水的自动售货机。这台机器一共有 n 个插槽。你知道最初的 i /-个插槽装有 ai 罐柠檬水。机器上还有 n 个按钮,每个按钮对应一个插槽,每个插槽对应一个按钮。不幸的是,按钮上的标签已经磨损,所以你不知道哪个按钮对应哪个插槽。
当你按下 i (-)槽对应的按钮时,会发生以下两种情况之一:
- 如果 i -th插槽中有一罐柠檬水,它就会掉出来,你就可以拿走它。此时, i -th槽中的罐子数量会减少 1 。
- 如果 i (-th)槽中没有柠檬水罐头了,就不会有任何东西掉出来。
按下按钮后,罐子会迅速掉出,以至于无法追踪它是从哪个插槽中掉落的。插槽中的内容是隐藏的,你无法看到每个插槽中还剩多少罐。您唯一知道的是插槽中罐子的初始数量: a1,a2,…,an .
请计算最少需要按多少次按钮才能保证你至少收到 k 罐柠檬水。
请注意,在按键过程中,您可以根据是否收到一罐柠檬水来调整您的策略。保证机器中总共至少有 kk 罐柠檬水。换句话说,就是 k≤a1+a2+…+an 。
2.输入:
每个测试由多个测试用例组成。第一行包含一个整数 t ( 1≤t≤10000 ) - 测试用例数。测试用例说明如下。
每个测试用例的第一行包含两个整数 n 和 k ( 1≤n≤2⋅105 , 1≤k≤109 )--机器的插槽数和所需的柠檬水罐数。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an ( 1≤ai≤109 ) - 插槽中的罐头数量。
可以保证 k≤a1+a2+…+an ,即机器中至少有 k 罐柠檬水。
保证所有测试用例中 n 的总和不超过 2⋅105 。