#CF4035. 吃糖果

吃糖果

题目描述

光头强有 nn 颗糖果。第 ii 颗糖果的糖量等于 aia_i。通过吃第 ii 颗糖,光头强获得的糖量为 aia_i

光头强会问你若干次关于糖果的问题。对于第 jj 个问题,您必须回答他需要吃多少糖果才能达到大于或等于 xjx_j 的糖量,或者如果无法获得这样的糖量则输出 1-1。换句话说,你应该输出最小可能的 kk,这样在吃了 kk 个糖果之后,光头强获得了至少 xjx_j 的糖量,或者说不存在这样的 kk

请注意,查询是彼此独的立的(光头强可以在不同的查询中查询相同的糖量)。

输入格式

第一行输入包含单个整数 t(1t1000)t(1≤t≤1000) 表示测试用例数。测试用例描述如下。

第一行包含 22 个整数 nnq(1n,q1.5×105)q(1≤n,q≤1.5\times 10^5) 表示光头强拥有的糖果数量和查询数量。

第二行包含 nn 个整数 a1,a2,,an(1ai104)a_1,a_2,…,a_n(1≤a_i≤10^4) 分别表示每个糖果中的糖量。

然后是 qq 行。

接下来的 qq 行中的每一行都包含一个整数 xj(1xj2×109)x_j(1≤x_j≤2\times 10^9) 表示光头强希望达到的给定查询的数量。

保证所有测试用例的 nnqq 之和不超过 1.5×1051.5\times 10^5

输出格式

对于每个测试用例,输出 qq 行。对于第 jj 行输出,光头强需要吃的糖果数量,以达到大于或等于 xjx_j 的糖量,如果无法获得需要的糖量,则输出 1-1

测试样例

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

样例说明

对于第一个测试用例:

对于第一个查询,光头强可以吃任何糖果,便达到想要的糖量。

对于第二个查询,光头强可以通过吃第 77 和第 88 颗糖果达到至少 1010 颗的数量,因此获得的糖量等于 1414 颗。

对于第三个查询,无法获得需要的糖量。

对于第四个查询,光头强可以通过吃第 77 和第 88 颗糖果达到至少 1414 的糖量。

对于第二个测试用例:

对于第二个测试用例的唯一查询,光头强可以选择第 33 个糖果,获得 33 的糖量。选择第 44 颗糖果也可以。