Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Túi đồ liệt kê vật

Dễ Duyệt phân tập

  • 100 Điểm
  • 100% Tỉ lệ AC
  • 1 Số AC
  • 256M Bộ nhớ giới hạn
  • 2.0s Giới hạn thời gian

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

Chưa có bình luận nào.