CF1003D.Coins and Queries
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Polycarp has n coins, the value of the i-th coin is ai. It is guaranteed that all the values are integer powers of 2 (i.e. ai=2d for some non-negative integer number d).
Polycarp wants to know answers on q queries. The j-th query is described as integer number bj. The answer to the query is the minimum number of coins that is necessary to obtain the value bj using some subset of coins (Polycarp can use only coins he has). If Polycarp can't obtain the value bj, the answer to the j-th query is -1.
The queries are independent (the answer on the query doesn't affect Polycarp's coins).
Polycarp 有 n 枚硬币,第 i 枚硬币的面值为 ai。保证所有面值均为 2 的整数次幂(即对某个非负整数 d,有 ai=2d)。
Polycarp 想要回答 q 个查询。第 j 个查询由整数 bj 描述。该查询的答案是:使用 Polycarp 所拥有的硬币的一个子集(他只能使用自己拥有的硬币),凑出面值 bj 所需的最少硬币数量。若 Polycarp 无法凑出面值 bj,则第 j 个查询的答案为 −1。
各查询相互独立(一个查询的答案不会影响 Polycarp 所拥有的硬币)。
输入格式
The first line of the input contains two integers n and q (1≤n,q≤2⋅105) — the number of coins and the number of queries.
The second line of the input contains n integers a1,a2,…,an — values of coins (1≤ai≤2⋅109). It is guaranteed that all ai are integer powers of 2 (i.e. ai=2d for some non-negative integer number d).
The next q lines contain one integer each. The j-th line contains one integer bj — the value of the j-th query (1≤bj≤109).
输入的第一行包含两个整数 n 和 q(1≤n,q≤2⋅105)—— 分别表示硬币的数量和查询的数量。
输入的第二行包含 n 个整数 a1,a2,…,an —— 表示各硬币的面值(1≤ai≤2⋅109)。保证所有 ai 均为 2 的整数次幂(即存在某个非负整数 d,使得 ai=2d)。
接下来的 q 行每行包含一个整数。第 j 行包含一个整数 bj —— 表示第 j 个查询的值(1≤bj≤109)。
输出格式
Print q integers ansj. The j-th integer must be equal to the answer on the j-th query. If Polycarp can't obtain the value bj the answer to the j-th query is -1.
输出 q 个整数 ansj。其中第 j 个整数必须等于第 j 次查询的答案。如果 Polycarp 无法得到值 bj,则第 j 次查询的答案为 −1。
输入输出样例
输入#1
5 4 2 4 8 2 4 8 5 14 10
输出#1
1 -1 3 2
输入解题思路,AI测评打分。不知道怎么写?