问题2422-- Eating Queries

2422: Eating Queries

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

hr有 $n$ 颗糖果。 $i$-th糖果的糖量等于 $a_i$ 。因此,吃下 $i$ 颗糖果,hr消耗的糖的数量等于 $a_i$

hr会就他的糖果向你提出 $q$ 个问题。对于 $j$-th个问题,你必须回答他需要吃多少颗糖果才能达到大于或等于$x_j$的糖量,如果不可能达到这样的糖量,则打印-1。

换句话说,你应该打印出最小可能的 $k$ ,这样在吃了 $k$ 颗糖果后,hr消耗的糖量至少为$x_j$ ,或者说不存在可能的 $k$ 。

请注意,他不能两次吃同一种糖果,而且查询是相互独立的(hr可以在不同的查询中使用同一种糖果)。

输入

第一行包含 $2$ 个整数 $n$ 和 $q$ ( $1 \leq n, q \leq 150000$ )--分别是 hr拥有的糖果数量和需要打印答案的查询次数。

第二行包含 $n$ 个整数 $a_1$,$a_2$,...,$a_n$( $1 \leq a_i \leq 10^4$ ) --分别是每颗糖果中糖的数量。

接下来是 $q$ 行。

接下来的每行 $q$ 都包含一个整数 $x_j$( $1 \leq x_j \leq 2*10^9$ ) - 即 hr希望达到的给定查询量

输出

输出 $q$ 行。对于 $j$-th 行,输出 hr需要吃多少颗糖果才能使糖的数量大于或等于$x_j$ ;如果无法获得这样的数量,则打印-1。

样例输入 Copy

8 7
4 3 3 1 1 4 5 9
1
10
50
14
15
22
30

样例输出 Copy

1
2
-1
2
3
4
8

提示

对于第一个查询,hr可以吃任何糖果,并且他将达到所需的数量。

对于第二个查询,hr可以通过吃 $7$-th和 $8$-th两颗糖果达到至少 $10$ 的数量,因此消耗的糖的数量等于 $14$ 。

对于第三个问题,没有可能的答案。

对于第四个问题,hr可以通过吃 $7$-th $8$-th两颗糖果达到至少 $14$ 的数量,因此消耗的糖的数量等于 $14$ 。

由于本题输入输出较大,请使用scanf、printf进行输入和输出。