CSES - Minimizing Coins | Giảm thiểu đồng xu

Xem PDF



Thời gian:
Pypy 3 1.5s

Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Hãy xét một hệ thống tiền bao gồm \(n\) đồng xu. Mỗi đồng xu có giá trị là một số nguyên dương. Nhiệm vụ của bạn là tạo ra một khoản tiền \(x\) bằng cách sử dụng các đồng xu có sẵn sao cho số lượng đồng xu là tối thiểu.

Ví dụ: nếu các đồng xu là \(\{1,5,7\}\) và tổng mong muốn là \(11\), một giải pháp tối ưu là \(5 + 5 + 1\), cần \(3\) đồng xu.

Input

  • Dòng đầu vào đầu tiên có hai số nguyên \(n\)\(x\): số lượng đồng xu và tổng số tiền mong muốn
  • Dòng thứ hai có \(n\) số nguyên phân biệt \(c_1, c_2, \ldots, c_n\): giá trị của mỗi đồng xu

Constraints

  • \(1 \leq n \leq 100\)
  • \(1 \leq x \leq 10^6\)
  • \(1 \leq c_i \leq 10^6\)

Output

  • In một số nguyên: số lượng đồng xu tối thiểu. Nếu không thể tạo ra tổng mong muốn, hãy in \(-1\)

Example

Test 1

Input
3 11
1 5 7
Output
3
Note

Một cách tối ưu để tạo ra tổng \(11\) là dùng hai đồng xu mệnh giá \(5\) và một đồng xu mệnh giá \(1\): \(5 + 5 + 1 = 11\), tổng cộng cần \(3\) đồng xu.

Bình luận (5)

Mới nhất
Tải bình luận...