问题2422-- Eating Queries

2422: Eating Queries

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

提交

题目描述

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

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

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

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

输入

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

第二行包含 n 个整数 a1,a2,...,an( 1ai104 ) --分别是每颗糖果中糖的数量。

接下来是 q 行。

接下来的每行 q 都包含一个整数 xj( 1xj2109 ) - 即 hr希望达到的给定查询量

输出

输出 q 行。对于 j-th 行,输出 hr需要吃多少颗糖果才能使糖的数量大于或等于xj ;如果无法获得这样的数量,则打印-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进行输入和输出。