Knapsack vét cạn

Xem dưới dạng PDF

Gửi bài giải


Điểm: 15
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Alice có một cái ba lô chứa được tối đa \(W\) kg và \(n\) món đồ. Mỗi đồ \(i\) có khối lượng \(w_i\) và giá trị \(v_i\).

Alice muốn chọn một số đồ để bỏ vào ba lô sao cho tổng khối lượng không quá \(W\)tổng giá trị là lớn nhất.

Vì \(n \le 20\), hãy dùng quay lui (backtracking) kết hợp nhánh cận để tìm giá trị lớn nhất.

Input

Dòng đầu chứa \(n\) và \(W\) (\(1 \le n \le 20\), \(1 \le W \le 10^9\)).
\(n\) dòng tiếp theo, mỗi dòng chứa \(w_i\) và \(v_i\) (\(1 \le w_i \le 10^9\), \(1 \le v_i \le 100\)).

Output

In ra giá trị lớn nhất có thể.

Example

4 10
3 40
5 20
6 30
2 10

Output:

70

Nhận xét

Không có ý kiến tại thời điểm này.