CF1003D.Coins and Queries

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Polycarp has nn coins, the value of the ii-th coin is aia_i. It is guaranteed that all the values are integer powers of 22 (i.e. ai=2da_i = 2^d for some non-negative integer number dd).

Polycarp wants to know answers on qq queries. The jj-th query is described as integer number bjb_j. The answer to the query is the minimum number of coins that is necessary to obtain the value bjb_j using some subset of coins (Polycarp can use only coins he has). If Polycarp can't obtain the value bjb_j, the answer to the jj-th query is -1.

The queries are independent (the answer on the query doesn't affect Polycarp's coins).

Polycarp 有 nn 枚硬币,第 ii 枚硬币的面值为 aia_i。保证所有面值均为 22 的整数次幂(即对某个非负整数 dd,有 ai=2da_i = 2^d)。

Polycarp 想要回答 qq 个查询。第 jj 个查询由整数 bjb_j 描述。该查询的答案是:使用 Polycarp 所拥有的硬币的一个子集(他只能使用自己拥有的硬币),凑出面值 bjb_j 所需的最少硬币数量。若 Polycarp 无法凑出面值 bjb_j,则第 jj 个查询的答案为 −1-1。

各查询相互独立(一个查询的答案不会影响 Polycarp 所拥有的硬币)。

输入格式

The first line of the input contains two integers nn and qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5) — the number of coins and the number of queries.

The second line of the input contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n — values of coins (1≤ai≤2⋅1091 \le a_i \le 2 \cdot 10^9). It is guaranteed that all aia_i are integer powers of 22 (i.e. ai=2da_i = 2^d for some non-negative integer number dd).

The next qq lines contain one integer each. The jj-th line contains one integer bjb_j — the value of the jj-th query (1≤bj≤1091 \le b_j \le 10^9).

输入的第一行包含两个整数 nn 和 qq(1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5)—— 分别表示硬币的数量和查询的数量。

输入的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n —— 表示各硬币的面值(1≤ai≤2⋅1091 \le a_i \le 2 \cdot 10^9)。保证所有 aia_i 均为 22 的整数次幂(即存在某个非负整数 dd,使得 ai=2da_i = 2^d)。

接下来的 qq 行每行包含一个整数。第 jj 行包含一个整数 bjb_j —— 表示第 jj 个查询的值(1≤bj≤1091 \le b_j \le 10^9)。

输出格式

Print qq integers ansjans_j. The jj-th integer must be equal to the answer on the jj-th query. If Polycarp can't obtain the value bjb_j the answer to the jj-th query is -1.

输出 qq 个整数 ansjans_j。其中第 jj 个整数必须等于第 jj 次查询的答案。如果 Polycarp 无法得到值 bjb_j,则第 jj 次查询的答案为 −1-1。

输入输出样例

  • 输入#1

    5 4
    2 4 8 2 4
    8
    5
    14
    10

    输出#1

    1
    -1
    3
    2

输入解题思路,AI测评打分。不知道怎么写?

首页