#5401. Cái túi 1 (Mã bài: KS012)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

N món đồ, được đánh số từ 1 đến N . Món đồ thứ i có trọng lượng là w_i và giá trị là v_i .

Taro quyết định chọn một số món đồ trong N món này và bỏ vào một cái túi. Sức chứa của túi là W , có nghĩa là tổng trọng lượng của các món đồ được chọn không được vượt quá W .

Hãy tìm tổng giá trị lớn nhất có thể của các món đồ mà Taro có thể mang đi. Đây là bài toán cái túi 0/1, nghĩa là mỗi món đồ chỉ có thể được chọn hoặc không được chọn.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên N W .
  • N dòng tiếp theo, dòng thứ i chứa hai số nguyên w_i v_i .

Kết quả: In ra một số nguyên duy nhất là tổng giá trị lớn nhất có thể.

Ví dụ:

Dữ liệu:

3 8
3 30
4 50
5 60

Kết quả:

90

Giải thích: Chọn món đồ thứ 2 (trọng lượng 4 , giá trị 40 ) và món đồ thứ 4 (trọng lượng 3 , giá trị 50 ). Tổng trọng lượng là 7 , tổng giá trị là 90 .

Giới hạn:

  • 1 \le N \le 100 .
  • 1 \le W \le 10^5 .
  • 1 \le w_i \le W .
  • 1 \le v_i \le 10^9 .