奖品兑换
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
运动会设置了奖品兑换点,同学们可以用积分兑换奖品。兑换点提供多种面值的代币,同学们需要用代币支付正好等于奖品价格的金额。
题目描述
小明想要兑换一个价值 积分的奖品。兑换点提供 种不同面值的代币,面值分别为 (已按从大到小排序)。
这些代币有一个特殊性质:每种较大面值的代币都是较小面值代币的整数倍。例如面值可能是 (,,,)。
小明希望用最少数量的代币凑出恰好 积分。请输出每种代币需要使用的数量。如果无法恰好凑出 积分,输出 -1。
输入格式
第一行包含两个正整数 和 (,),分别表示代币种类数和需要支付的积分。
第二行包含 个正整数 (),表示各种代币的面值(从大到小排列)。保证大面值是小面值的整数倍。
输出格式
如果能恰好凑出 积分,输出一行 个整数,第 个整数表示面值为 的代币使用数量。
如果无法凑出,输出 -1。
样例
5 168
100 50 10 5 1
1 1 1 1 3
3 7
6 4 2
-1
样例说明
样例 1:$100 \times 1 + 50 \times 1 + 10 \times 1 + 5 \times 1 + 1 \times 3 = 168$。
样例 2:面值 都是偶数,无法凑出奇数 。