trang chủ / đề bài / ht_ts10_26_d

Thu năng lượng

Đề bài

Mô tả

Trong một trò chơi điện tử, bạn An cần đi qua một con đường gồm n trạm năng lượng được đánh số từ 1 đến n. Tại trạm thứ i, An có thể nhận được ai đơn vị năng lượng. Tuy nhiên, để tránh quá tải, An phải tuân theo các quy tắc sau:

  • An có thể chọn hoặc bỏ qua mỗi trạm;
  • Không được chọn quá k trạm liên tiếp;
  • An có thể không chọn trạm nào.

Yêu cầu: Hãy tính tổng năng lượng lớn nhất mà An có thể nhận được.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n và k (1≤n≤105, k≤n, 1≤k≤20).
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an (|ai|≤106, 1≤i≤n).

Các số ghi trên một dòng cách nhau bởi một dấu cách.

Dữ liệu ra

Một số nguyên duy nhất là tổng năng lượng lớn nhất mà An có thể nhận được.

Ràng buộc

  • 1≤n≤105, 1≤k≤min(n,20).
  • |ai|≤106.

Subtasks

  • Subtask 1 (30% số điểm): k=1; 1≤a1<a2<…<an.
  • Subtask 2 (30% số điểm): k≤2.
  • Subtask 3 (20% số điểm): ai>0 (1≤i≤n).
  • Subtask 4 (20% số điểm): Không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5 1
2 3 5 7 8
15 Với k=1, không được chọn quá 1 trạm liên tiếp. Chọn các trạm 1,3,5 thu được tổng năng lượng là 2+5+8=15.
6 2
5 8 4 10 3 7
30 Với k=2, không được chọn quá 2 trạm liên tiếp. Chọn các trạm 1,2,4,6 thu được tổng năng lượng là 5+8+10+7=30.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0