#CF2042A. 贪婪的莫诺卡普
贪婪的莫诺卡普
A. 贪婪的莫诺卡普
时间限制:2 秒
内存限制:512 MB
有 个宝箱;第 个宝箱最初有 枚硬币。
对于每个宝箱,你可以选择添加任意非负整数( 或更大)数量的硬币,但有一个限制:所有宝箱中的硬币总数必须至少为 。
在你完成向宝箱中添加硬币后,贪婪的莫诺卡普前来,他想要这些硬币。他将一个一个地拿走宝箱,由于他很贪婪,他每次都会选择硬币数量最多的宝箱。
莫诺卡普会在拿走的宝箱中的硬币总数至少为 时立刻停止。
你希望莫诺卡普拿走的硬币尽可能少,因此你需要通过添加硬币,使得当莫诺卡普停止拿宝箱时,他拿到的硬币总数恰好等于 。
请计算你需要添加的最少硬币数量。
输入
第一行包含一个整数 ()—— 测试用例的数量。
每个测试用例包含两行:
- 第一行包含两个整数 和 (,);
- 第二行包含 个整数 ()。
输出
对于每个测试用例,输出一个整数 —— 使莫诺卡普拿走恰好 个硬币所需添加的最少硬币数。
可以证明,在题目给定的约束下,总是存在解。
示例
输入:
4
5 4
4 1 2 3 2
5 10
4 1 2 3 2
2 10
1 1
3 8
3 3 3
输出:
0
1
8
2
说明
- 在第一个测试用例中,你不需要添加任何硬币。莫诺卡普会先拿有 枚硬币的宝箱,此时他正好有 枚硬币。
- 在第二个测试用例中,你可以向第 个宝箱添加 枚硬币,这样莫诺卡普会先拿一个 枚硬币的宝箱,再拿另一个 枚硬币的宝箱,最后拿一个有 枚硬币的宝箱。
- 在第三个测试用例中,你可以向第 个宝箱添加 枚硬币,向第 个宝箱添加 枚硬币。
- 在第四个测试用例中,你可以向第 个宝箱添加 枚硬币,向第 个宝箱添加 枚硬币。