Túi đồ với trọng lượng nhỏ
Đề bài
Mô tả
Bạn có một tập các món đồ, mỗi món có trọng lượng là số nguyên không vượt quá . Một tập con các món đồ được gọi là tốt nếu tổng trọng lượng của các món trong tập con đó không vượt quá .
Hãy tính tổng trọng lượng lớn nhất của một tập con tốt. Lưu ý rằng tập rỗng và toàn bộ tập ban đầu cũng được coi là tập con hợp lệ khi tính đáp án.
Dữ liệu vào
- Dòng đầu tiên chứa một số nguyên — tổng trọng lượng tối đa của một tập con tốt.
- Dòng thứ hai chứa số nguyên , trong đó là số món đồ có trọng lượng đúng bằng .
Dữ liệu ra
In ra một số nguyên duy nhất — tổng trọng lượng lớn nhất của một tập con tốt.
Ràng buộc
- với mọi
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 0 4 1 0 0 9 8 3 |
3 | Chọn đúng một món trọng lượng . Không thể đạt tổng lớn hơn vì mọi tập con có tổng trong khoảng đều vượt quá . |
| 10 1 2 3 4 5 6 7 8 |
10 | Chẳng hạn chọn hai món trọng lượng , tổng đúng bằng . |
| 6 0 0 2 1 0 0 0 0 |
6 | Ta có hai món trọng lượng và một món trọng lượng . Nếu tham lam lấy món nặng nhất trước () thì chỉ còn đơn vị trống và không thêm được món nào nữa, cho tổng . Đáp án tối ưu là lấy cả hai món trọng lượng , được tổng . |
Bình luận