编程题
### 问题描述 小李拥有 $n$ 种面值不同的硬币,对于每一种硬币,他都有无限个,但是,小李希望每次支付一样东西时,使用最少的硬币,否则会麻烦到自己;同时他也希望自己支付的硬币总面值刚好等于他要买的商品的价格,否则会麻烦到别人。现在他需要支付一件价格为 $k$ 的商品,请问他最少需要拿出多少个硬币?如果他无法刚好买到这件商品,则输出 $-1$ 。 ### 输入格式 第一行给出两个整数 $n$ 和 $k$ ,表示硬币种类数和商品价格。 接下来一行输入 $n$ 个整数,表示每种硬币的面值 $a_i$ 。 ### 输出格式 如果他可以刚好买到这件商品,则输出他需要支付的硬币的最少数量,如果他无法刚好买到这件商品,则输出 $-1$ 。 ### 样例输入 ```txt 3 11 1 2 5 ``` ### 样例输出 ```txt 3 ``` ### 评测数据规模 对于所有测评数据: $1 \le n,k \le 10^5$ , $0 \le a_i \le 10^5$ 。
查看答案
赣ICP备20007335号-2