Túi đồ với trọng lượng nhỏ

Đề bài

Mô tả

Bạn có một tập các món đồ, mỗi món có trọng lượng là số nguyên không vượt quá 8. Một tập con các món đồ được gọi là tốt nếu tổng trọng lượng của các món trong tập con đó không vượt quá W.

Hãy tính tổng trọng lượng lớn nhất của một tập con tốt. Lưu ý rằng tập rỗng và toàn bộ tập ban đầu cũng được coi là tập con hợp lệ khi tính đáp án.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên W — tổng trọng lượng tối đa của một tập con tốt.
  • Dòng thứ hai chứa 8 số nguyên cnt1,cnt2,,cnt8, trong đó cnti là số món đồ có trọng lượng đúng bằng i.

Dữ liệu ra

In ra một số nguyên duy nhất — tổng trọng lượng lớn nhất của một tập con tốt.

Ràng buộc

  • 0W1018
  • 0cnti1016 với mọi 1i8

Ví dụ

Input Output Giải thích
3
0 4 1 0 0 9 8 3
3 Chọn đúng một món trọng lượng 3. Không thể đạt tổng lớn hơn vì mọi tập con có tổng trong khoảng (3,) đều vượt quá W=3.
10
1 2 3 4 5 6 7 8
10 Chẳng hạn chọn hai món trọng lượng 5, tổng đúng bằng W=10.
6
0 0 2 1 0 0 0 0
6 Ta có hai món trọng lượng 3 và một món trọng lượng 4. Nếu tham lam lấy món nặng nhất trước (4) thì chỉ còn 2 đơn vị trống và không thêm được món nào nữa, cho tổng 4. Đáp án tối ưu là lấy cả hai món trọng lượng 3, được tổng 6.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0