Đổ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

Không có ý kiến tại thời điểm này.