Đổi xu tối thiểu
Xem dưới dạng PDF
Gửi bài giải
Điểm:
10
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Bé Bình quyết tâm dành tiền mua tặng mẹ một món quà sinh nhật thật ý nghĩa. Cậu nuôi một chú heo đất và bỏ vào đó rất nhiều đồng xu thuộc \(N\) loại mệnh giá khác nhau: \(c_1, c_2, \dots, c_N\). Món quà Bình muốn mua có giá đúng \(S\) đồng. Bình dự định đập heo đất lấy ra một số đồng xu sao cho tổng giá trị đúng bằng \(S\) và số đồng xu phải lấy ra là ít nhất có thể, vì Bình muốn giữ lại nhiều xu trong heo cho lần sau.
Nếu với số xu trong heo không thể gộp thành đúng \(S\) đồng, Bình đành phải đợi đến tháng sau. Hãy giúp Bình tính số xu tối thiểu, hoặc in ra \(-1\) nếu không thể.
Định dạng đầu vào
- Dòng đầu tiên chứa hai số nguyên \(N\) và \(S\) (\(1 \le N \le 500\), \(1 \le S \le 10^5\)).
- Dòng thứ hai chứa \(N\) số nguyên \(c_1, c_2, \dots, c_N\) (\(1 \le c_i \le 10^5\)).
Định dạng đầu ra
- In ra số xu tối thiểu cần lấy, hoặc \(-1\) nếu không thể tạo được tổng \(S\).
Ví dụ
Input:
3 11
1 5 7
Output:
3
Ràng buộc
- \(20\%\) số điểm ứng với \(N \le 5\), \(S \le 100\).
- \(30\%\) số điểm ứng với \(N \le 100\), \(S \le 5000\).
- \(50\%\) số điểm còn lại không có ràng buộc gì thêm.
Nhận xét