Một cửa hàng có \(n\) món đồ, món thứ \(i\) nặng \(w_i\) và có giá trị \(v_i\). Chiếc túi của bạn chịu được tổng khối lượng tối đa \(M\). Hãy chọn tập món (mỗi món tối đa một lần) sao cho tổng khối lượng không quá \(M\) và tổng giá trị lớn nhất, đồng thời in ra tập món được chọn.
Nếu có nhiều tập tối ưu, in tập có dãy chỉ số (xếp tăng dần) nhỏ nhất theo thứ tự từ điển.
Input
- Dòng đầu: hai số nguyên \(n\) và \(M\).
- \(n\) dòng tiếp: mỗi dòng hai số nguyên \(w_i\) và \(v_i\).
Output
- Dòng 1: số món được chọn.
- Dòng 2: chỉ số các món được chọn (đánh số từ 1 theo thứ tự nhập), tăng dần, cách nhau dấu cách.
Constraints
- \(1 \le n \le 24\)
- \(1 \le M \le 10^{11}\)
- \(1 \le w_i, v_i \le 10^9\)
Sample Input
5 15
6 4
4 5
7 8
3 2
5 6
Sample Output
3
3 4 5
Explanation
Tổng khối lượng \(7+3+5=15\), tổng giá trị \(16\) là lớn nhất.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.