#CF4035. 吃糖果
吃糖果
题目描述
光头强有 颗糖果。第 颗糖果的糖量等于 。通过吃第 颗糖,光头强获得的糖量为 。
光头强会问你若干次关于糖果的问题。对于第 个问题,您必须回答他需要吃多少糖果才能达到大于或等于 的糖量,或者如果无法获得这样的糖量则输出 。换句话说,你应该输出最小可能的 ,这样在吃了 个糖果之后,光头强获得了至少 的糖量,或者说不存在这样的 。
请注意,查询是彼此独的立的(光头强可以在不同的查询中查询相同的糖量)。
输入格式
第一行输入包含单个整数 表示测试用例数。测试用例描述如下。
第一行包含 个整数 和 表示光头强拥有的糖果数量和查询数量。
第二行包含 个整数 分别表示每个糖果中的糖量。
然后是 行。
接下来的 行中的每一行都包含一个整数 表示光头强希望达到的给定查询的数量。
保证所有测试用例的 和 之和不超过 。
输出格式
对于每个测试用例,输出 行。对于第 行输出,光头强需要吃的糖果数量,以达到大于或等于 的糖量,如果无法获得需要的糖量,则输出 。
测试样例
3
8 7
4 3 3 1 1 4 5 9
1
10
50
14
15
22
30
4 1
1 2 3 4
3
1 2
5
4
6
1
2
-1
2
3
4
8
1
1
-1
样例说明
对于第一个测试用例:
对于第一个查询,光头强可以吃任何糖果,便达到想要的糖量。
对于第二个查询,光头强可以通过吃第 和第 颗糖果达到至少 颗的数量,因此获得的糖量等于 颗。
对于第三个查询,无法获得需要的糖量。
对于第四个查询,光头强可以通过吃第 和第 颗糖果达到至少 的糖量。
对于第二个测试用例:
对于第二个测试用例的唯一查询,光头强可以选择第 个糖果,获得 的糖量。选择第 颗糖果也可以。