Bài 4: Thu năng lượng (TS10 Hà Tĩnh 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

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 \(a_i\) đơ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.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(k\) (\(1 \le n \le 10^5, k \le n, 1 \le k \le 20\));
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(|a_i| \le 10^6, 1 \le i \le n\)).
    Các số ghi trên một dòng cách nhau bởi một dấu cách.

Output

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

Constraints

  • Có \(30\%\) số test ứng với \(30\%\) số điểm của bài thỏa mãn điều kiện: \(k = 1; 1 \le a_1 < a_2 < \dots < a_n\);
  • Có \(30\%\) số test ứng với \(30\%\) số điểm của bài thỏa mãn điều kiện: \(k \le 2\);
  • Có \(20\%\) số test ứng với \(20\%\) số điểm của bài thỏa mãn điều kiện: \(a_i > 0\) (\(1 \le i \le n\));
  • \(20\%\) số test còn lại ứng với \(20\%\) số điểm không có ràng buộc gì thêm.

Example

Test 1

Input
5 1
2 3 5 7 8
Output
15
Note

\(k=1\): không được chọn quá \(1\) trạm liên tiếp.
Chọn các trạm \(1, 3, 5\) được tổng \(2 + 5 + 8 = 15\).

Test 2

Input
6 2
5 8 4 10 3 7
Output
30
Note

\(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\) được tổng \(5 + 8 + 10 + 7 = 30\).

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: