给出一个总数,再给出不同面值的硬币若干枚,请问如何用最少的硬币凑够这个总数。
如,我们现在有面值为1元、3元、5元的硬币若干枚,如何用最少的硬币凑够11元?
输入
第一行输入一个正整数 amount ,表示要凑够的数额。
第二行输入一个正整数n,表示持有多少种硬币。
第三行输入n 个数,第 i 个数表示该种硬币的面值。
输出
最少要用多少枚硬币。如果无解则输出 -1 。
样例
| 标准输入 复制文本 |
11 3 1 2 3 |
| 标准输出 复制文本 |
4 |
| 标准输入 复制文本 |
1 1 5 |
| 标准输出 复制文本 |
-1 |
提示
样例 1:最少使用3枚面值为3元的硬币,和1枚面值为2元的硬币
样例 2:因为无论如何都不能凑出 1 元,所以无解,输出 -1 。