CANDYBOX (HSG10v2-2021)

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: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Alice là bạn thân của Bob. Sắp tới là sinh nhật của Alice nên Bob quyết định sẽ tặng Alice một hộp kẹo. Cửa hàng anh ấy chọn mua kẹo sẽ có \(N\) viên kẹo, viên kẹo thứ \(i\) sẽ có giá trị là \(A_i\) (\(1 \le i \le N\)). Anh ấy quyết định sẽ chọn một dãy kẹo liên tiếp sao cho có đúng \(X\) giá trị khác nhau trong dãy. Ví dụ cho dãy [1, 2, 3, 3, 3, 2, 4], nếu chọn đoạn \([2, 7]\) thì dãy sẽ có \(3\) giá trị khác nhau \((2, 3, 4)\).

Vì biết Alice rất thích số \(Y\) nên anh gọi \(S(L, R)\) là độ đẹp của dãy kẹo \([L, R]\) (\(1 \le L \le R \le N\)), \(S(L, R)\) sẽ được tính theo các công thức sau:

  • Gọi \(V\) là dãy chứa \(X\) giá trị khác nhau của đoạn \([L, R]\) đã được sắp xếp theo thứ tự tăng dần.
  • \(S(L, R) = V_1 + V_y + V_x\), với \(V_i\) là giá trị thứ \(i\) của dãy \(V\).

Vì không có nhiều thời gian nên Bob đã quyết định nhờ các bạn tìm ra đoạn \([L, R]\) có \(S(L, R)\) lớn nhất để làm quà cho Alice.

Input

  • Dòng đầu tiên gồm ba số nguyên dương \(N, X, Y\).
  • Dòng thứ hai gồm \(N\) số nguyên dương biểu diễn cho dãy \(A_i\).

Ràng buộc:

  • \(1 \le N \le 10^5\)
  • \(3 \le X \le N\)
  • \(2 \le Y < X\)
  • \(1 \le A_i \le 2\cdot 10^9\)

Output

  • Gồm một dòng duy nhất là kết quả bài toán.

Example

Test 1

Input
8 4 2
1 1 3 2 10 10 8 1
Output
15
Note

Ta chọn dãy [3, 2, 10, 10, 8] ta sẽ có dãy \(2, 3, 8, 10\) sau khi rút gọn, \(S(3, 7) = 2 + 3 + 10 = 15\).

Scoring

  • \(40\%\) số test: \(1 \le N \le 100\).
  • \(30\%\) số test: \(1 \le N \le 10^3\).
  • \(30\%\) số test: không có giới hạn 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.