#T2061. 最少硬币数(Minimizing Coins)

最少硬币数(Minimizing Coins)

链接: https://cses.fi/problemset/task/1634

板块: Dynamic Programming

时限: 1.00 s | 内存: 512 MB

题目描述

考虑一个由 nn 种硬币组成的货币系统。每种硬币都有一个正整数面值。你的任务是用这些可用硬币凑出金额 xx,并使硬币数量最少。

例如,如果硬币为 {1,5,7}\{1,5,7\},目标金额为 1111,一种最优方案是 5+5+15+5+1,需要 33 枚硬币。

输入

第一行输入包含两个整数 nnxx:硬币的种类数和目标金额。

第二行包含 nn 个互不相同的整数 c1,c2,,cnc_1,c_2,\dots,c_n:每种硬币的面值。

输出

输出一个整数:最少的硬币数量。如果无法凑出目标金额,则输出 1-1

数据范围

1n1001 \le n \le 100 1x1061 \le x \le 10^6 1ci1061 \le c_i \le 10^6

样例输入

3 11
1 5 7

样例输出

3