Vòng tròn số (THTB KV Miền Bắc & Trung 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: 1400 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Alice viết lần lượt từng số của dãy số nguyên \((a_1, a_2, \dots, a_N)\) lên vòng tròn theo chiều kim đồng hồ.

Với số nguyên dương \(K\), Alice muốn chọn một đoạn gồm không quá \(K\) phần tử liên tiếp trên vòng tròn để tổng là lớn nhất.

Ví dụ, với dãy số \((5, -1, 4, 1, -1, 5, -6, 6)\):

  • Nếu \(K = 4\), Alice có thể chọn \(6 + 5 + (-1) + 4 = 14\) là lớn nhất.
  • Nếu \(K = 3\), Alice có thể chọn \(6 + 5 = 11\) là lớn nhất.

Yêu cầu: Cho dãy số \((a_1, a_2, \dots, a_N)\) và số nguyên dương \(K\), hãy giúp Alice tính tổng lớn nhất có thể đạt được.

Input

  • Dòng đầu chứa hai số nguyên dương \(N, K\) (\(K \le N \le 3 \cdot 10^5\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) (\(|a_i| \le 10^9\)).

Output

  • Gồm một dòng chứa một số là tổng lớn nhất có thể đạt được.

Example

Test 1

Input
8 4
5 -1 4 1 -1 5 -6 6
Output
14

Test 2

Input
8 3
5 -1 4 1 -1 5 -6 6
Output
11

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(N \le 300\).
  • Subtask \(2\) (\(30\%\) số điểm): \(N \le 3000\).
  • Subtask \(3\) (\(40\%\) số điểm): Không có ràng buộc nào 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.

Kỳ thi: