Chọn học phần tự chọn
Xem dạng PDFHọc kỳ tới, cổng đăng ký học tập của Đại học Công nghiệp Hà Nội mở ~n~ học phần tự chọn, đánh số từ ~1~ đến ~n~. Học phần thứ ~i~ có thời lượng ~w_i~ tiết học. Sau khi tham khảo ý kiến các anh chị khoá trên, bạn Lan tự chấm cho học phần thứ ~i~ một điểm giá trị ~v_i~ – điểm càng cao nghĩa là học phần càng hữu ích với định hướng nghề nghiệp của Lan.
Do còn phải học các học phần bắt buộc và đi làm thêm, Lan chỉ có thể dành không quá ~W~ tiết cho các học phần tự chọn. Mỗi học phần chỉ được đăng ký nhiều nhất một lần và phải học trọn vẹn cả học phần. Lan cũng có thể không đăng ký học phần nào.
Yêu cầu
Hãy giúp Lan chọn một số học phần sao cho tổng thời lượng không vượt quá ~W~ và tổng điểm giá trị là lớn nhất. In ra tổng điểm giá trị lớn nhất đó.
Dữ liệu vào
- Dòng thứ nhất chứa hai số nguyên ~n~ và ~W~;
- ~n~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~w_i~ và ~v_i~.
Kết quả ra
Ghi ra một số nguyên duy nhất là tổng điểm giá trị lớn nhất có thể đạt được.
Ràng buộc
~1 \le n \le 100~; ~1 \le W \le 10^5~; ~1 \le w_i \le W~; ~1 \le v_i \le 10^9~.
- Subtask 1 (20% số điểm – test 01–04): ~n \le 20~;
- Subtask 2 (30% số điểm – test 05–10): ~W \le 1000~;
- Subtask 3 (50% số điểm – test 11–20): không có ràng buộc bổ sung.
Lưu ý: kết quả có thể vượt quá phạm vi kiểu số nguyên 32 bit.
Ví dụ
Dữ liệu vào mẫu 1
4 10
6 30
5 20
5 20
3 9
Kết quả ra mẫu 1
40
Giải thích
Lan chọn học phần ~2~ và học phần ~3~: tổng thời lượng ~5 + 5 = 10 \le 10~, tổng điểm giá trị ~20 + 20 = 40~.
Học phần ~1~ có điểm giá trị cao nhất, nhưng nếu chọn nó thì chỉ còn ~4~ tiết, chỉ đủ để chọn thêm học phần ~4~ và tổng điểm giá trị chỉ là ~30 + 9 = 39~.
Bình luận