[RCOJ Educational Contest #01] Đổi tiền 2

Xem dạng PDF

Gửi bài giải

Điểm: 800,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho ~k~ loại mệnh giá (đồng) như sau: ~c_1,c_2,...,c_k~. Tìm số lượng đồng xu ít nhất để tạo ra số tiền ~S~, mỗi mệnh giá có thể dùng vô số lần?

Input

  • Dòng thứ nhất có hai số tự nhiên ~k,S~ - số lượng mệnh giá và tổng tiền cần đổi.
  • Dòng thứ hai gồm ~k~ số nguyên ~c_1,c_2,...,c_k~ , ~c_i~ (~1 \leq c_i \leq 10^5~) các mệnh giá tiền (mỗi mệnh giá đều khác nhau).

Output

Một số nguyên duy nhất - số lượng đồng xu ít nhất tạo ra tổng tiền ~S~ lấy modulo cho ~10^9+7~. Nếu không có cách chia nào thì in ra ~-1~.

Scoring

  • Subtask ~1~ ~(10\%)~: ~S \leq 100, k \leq 5, 1 \leq c_i \leq 1000~;
  • Subtask ~2~ ~(90\%)~: ~S \leq 10^6,k \leq 100, 1 \leq c_i \leq 10^6~.

Example input 1

3 11
1 5 7

Example output 1

3

Note 1

  • Cách tối ưu: ~5 + 5 + 1 = 11~

→ Có ít nhất ~3~ đồng xu để tạo ra ~11~ đồng tiền


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.