Bài 4: Farm (TS10 KHTN thi thử lần 3 - 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: 1200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một nông trại có \(N\) thửa ruộng xếp thành một hàng, thửa thứ \(i\) có giá trị thu hoạch là \(a_i\) (có thể âm, nghĩa là thửa đó bị sâu bệnh và gây thiệt hại nếu thu hoạch).

Bạn muốn chọn một số thửa để thu hoạch sao cho tổng giá trị lớn nhất có thể. Tuy nhiên, sau khi thu hoạch một thửa, máy gặt cần thời gian bảo trì nên bạn phải bỏ qua ít nhất \(K\) thửa liền kề tiếp theo trước khi thu hoạch thửa tiếp.

Nói cách khác, nếu bạn thu hoạch thửa \(i\), thửa tiếp theo bạn được phép thu hoạch sớm nhất là thửa \(i + K + 1\). Bạn cũng có thể chọn không thu hoạch thửa nào (tổng \(= 0\)).

Hãy tìm tổng giá trị thu hoạch lớn nhất có thể.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\)\(K\) (\(1 \le N \le 10^6, 0 \le K \le N-1\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_n\) (\(-10^9 \le a_i \le 10^9\)).

Output

  • In ra một số nguyên duy nhất là tổng giá trị thu hoạch lớn nhất.

Example

Test 1

Input
5 1
3 1 5 2 8
Output
16
Note

Thu hoạch thửa 1, 3, 5: \(3 + 5 + 8 = 16\).

Test 2

Input
6 2
5 -3 4 -1 6 2
Output
11
Note

Thu hoạch thửa 1 và 5: \(5 + 6 = 11\).

Test 3

Input
4 1
-5 -3 -1 -4
Output
0
Note

Tất cả âm, không thu hoạch.

Scoring

  • Subtask \(1\) (\(25\%\) số điểm): \(N \le 20\).
  • Subtask \(2\) (\(25\%\) số điểm): \(N \le 5000, K \le 5000\).
  • Subtask \(3\) (\(25\%\) số điểm): \(K \le 1\).
  • Subtask \(4\) (\(25\%\) số đ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.