Backpack

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 1400 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Vào buổi sáng trước ngày đi dã ngoại, PhuocThienuou được thầy giáo giao phụ trách chuẩn bị đồ dùng cho cả nhóm. Trên bàn có \(n\) món đồ khác nhau, mỗi món đồ thứ \(i\) có khối lượng là \(w_i\) và giá trị hữu ích là \(v_i\). Chiếc ba lô mà thầy đưa cho nhóm có sức chứa tối đa là \(m\), nên không thể bỏ tất cả mọi thứ vào cùng một lúc. PhuocThien muốn chọn đúng \(k\) món đồ để mang theo, vì thầy chỉ cho phép nhóm mang một số lượng đồ vừa đủ để tránh cồng kềnh. Tuy nhiên, không phải cách chọn nào cũng hợp lệ, bởi tổng khối lượng của các món được chọn không được vượt quá \(m\). Nhiệm vụ của bạn là giúp PhuocThien tìm tổng giá trị hữu ích lớn nhất có thể đạt được khi chọn đúng \(k\) món đồ thỏa mãn điều kiện về khối lượng. Nếu không có cách chọn nào hợp lệ, hãy in ra -1.

Input

  • Dòng đầu tiên chứa ba số nguyên \(n\), \(m\), \(k\) (\(1 \le n \le 250\), \(1 \le k \le n\), \(1 \le m \le 2500\)).
  • \(n\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(w_i\), \(v_i\) (\(1 \le w_i \le 1000\), \(1 \le v_i \le 10^9\)) lần lượt là khối lượng và giá trị hữu ích của món đồ thứ \(i\).

Output

  • In ra một số nguyên duy nhất là tổng giá trị hữu ích lớn nhất có thể đạt được khi chọn đúng \(k\) món đồ và tổng khối lượng không vượt quá \(m\).
  • Nếu không tồn tại cách chọn hợp lệ, in ra -1.

Example

Test 1

Input
5 10 3
2 6
3 7
4 8
5 9
6 12
Output
22
Note

\(5\) món đồ là:
- món \(1\): \(w=2\), \(v=6\)
- món \(2\): \(w=3\), \(v=7\)
- món \(3\): \(w=4\), \(v=8\)
- món \(4\): \(w=5\), \(v=9\)
- món \(5\): \(w=6\), \(v=12\)
Ta phải chọn đúng 3 món sao cho tổng khối lượng không vượt quá 10 và tổng giá trị lớn nhất.
Xét vài cách chọn hợp lệ:
- Chọn món \(1, 2, 4\):
tổng khối lượng \(2+3+5=10\)
tổng giá trị \(6+7+9=22\)
- Chọn món \(1, 3, 4\):
tổng khối lượng \(2+4+5=11\) \(>\) \(10\), không hợp lệ.
- Chọn món \(1, 2, 5\):
tổng khối lượng \(2+3+6=11\) \(>\) \(10\), không hợp lệ.
- Chọn món \(1, 3, 5\):
tổng khối lượng \(2+4+6=12\) \(>\) \(10\), không hợp lệ.
- Chọn món \(2, 3, 4\):
tổng khối lượng \(3+4+5=12\) \(>\) \(10\), không hợp lệ.
Cách tốt nhất là chọn món \(1, 2, 4\) được tổng giá trị là \(22\).

Test 2

Input
9 12 1
11 -42
3 -14
10 41
9 16
10 -61
1 45
11 37
10 2
9 -43
Output
45

Scoring

  • Subtask \(1\) (\(20\%\) điểm): \(1 \le n \le 20\), \(1 \le m \le 50\), \(1 \le k \le n\).
  • Subtask \(2\) (\(30\%\) điểm): \(1 \le n \le 100\), \(1 \le m \le 500\), \(1 \le k \le 20\).
  • Subtask \(3\) (\(50\%\) điểm): Không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: