KNAPSACK1

Nguồn: None

(knapsack1.*)

Cho số nguyên dương \(s\) và dãy số \(A\) gồm \(n\) số nguyên dương \(a_{1},a_{2},\ldots,a_{n}\). Hãy chọn một số phần tử trong dãy số \(A\) sao cho tổng các phần tử được chọn là lớn nhất nhưng không vượt quá \(s\). Lưu ý mỗi số trong dãy \(A\) có thể được chọn 0 hoặc 1 hoặc nhiều lần.

Yêu cầu: Hãy cho biết tổng lớn nhất chọn được.

Dữ liệu vào:

+ Dòng đầu tiên ghi số nguyên dương \(t\ (1 \leq t \leq 10)\) cho biết số lượng testcase.

+ \(t\) nhóm dòng tiếp theo mỗi nhóm dòng cho biết thông tin về 1 testcase:

  • Dòng đầu ghi 2 số nguyên dương \(n,\ s\).

  • Dòng tiếp theo ghi \(n\) số nguyên dương \(a_{1},a_{2},\ldots,a_{n}\).

Tất cả các số được cho không vượt quá 2000.

Kết quả:

Đưa ra \(t\) số, mỗi số trên một dòng là kết quả tương ứng với testcase trong input

Ví dụ:

Input Output
2
3 12
1 6 9
5 9
3 4 4 4 8
12
9

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. nongvantien11 (34/51)
  2. nnminh1806 (18/36)
  3. nhuhuyn (14/16)
Trong 7 ngày
  1. nongvantien11 (99/155)
  2. qtaydzs1tg (72/135)
  3. trungo0 (49/91)
Trong 30 ngày
  1. nongvantien11 (192/300)
  2. trungo0 (131/242)
  3. ngocbichh (110/267)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 41085

Lưu Hải Phong - 2020
[email protected]