问题 E:选糖果ecandy.cpp

文件提交:文件名:ecandy 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:187 解决:6

题目描述

## 题目描述 张老师正在超市中选一会上课要吃的糖果,但他的口袋不大,一旦买了太多的糖果的话,就有可能被班主任发现了! 超市中有 $N$ 颗糖果可选,编号为 $1,2,\dots, N$,其中 $i$ 号糖果的甜度为 $a_i$。现在有 $q$ 次询问,每次询问给你一个期望总甜度 $x$,问最少选择几颗糖果,可以使得选出的糖果总甜度大于等于 $x$。 - 注意:每次询问中,不能多次选择同一颗糖,但是每次询问都是独立的,即不同询问可以选择同一颗糖。 ## 输入格式 第一行输入 $N$ , $q$ ,代表一共有多少颗糖果,和总询问次数。 第二行输入 $N$ 个数,$a_1,a_2,\dots,a_N$ 代表每颗糖果的甜度。 接下来 $q$ 行,每行输入一个整数 $x$,代表每次询问中的期望总甜度。 ## 输出格式 一共 $N$ 行,每行一个整数,代表每次询问的结果,若不能够达到该次询问中的总甜度,则输出 `-1`。 ## 样例 #1 ### 样例输入 #1 ``` 8 3 4 3 3 1 1 4 5 9 1 10 50 ``` ### 样例输出 #1 ``` 1 2 -1 ``` ## 提示 【样例提示】 第 1 个询问中,可以选择甜度为 $1$ 的糖果 第 2 个询问中,可以选择甜度为 $5,9$ 的糖果 第 3 个询问中,选择不出对应总甜度的糖果 【数据范围】 对于前 $60\%$ 的数据,满足 $n\le 10^3, q \le 10^3, a_i \le 10^3, x \le 2 \times 10^7$; 对于 $100\%$ 的数据,满足 $n\le 10^5, q \le 10^5, a_i \le 10^4, x \le 2 \times 10^9$。