만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

동전 퀴즈

면접 대비

시간 제한1초메모리 제한1024 MB

요약
코인이 b 이하인 칸을 비울 때, 연속한 k칸마다 빈 칸이 m개 이상이 되도록 b를 정하고 남은 코인의 합에서 b를 뺀 값의 최댓값을 구합니다.
난이도

보통10점 중 6점

유형
이분 탐색, 슬라이딩 윈도우, 누적 합
정답자
아직 제출이 없습니다

문제

새 텔레비전 퀴즈의 규칙은 다음과 같습니다. 일렬로 놓인 nn개의 칸이 있고, 각 칸에는 11번부터 nn번까지 번호가 붙어 있습니다. ii번째 칸에는 aia_i개의 동전이 들어 있습니다.

참가자는 정수 bb를 고르고 bb개의 동전을 지불할 수 있습니다. 그러면 진행자가 동전이 bb개 이하인 모든 칸에서 동전을 가져가고, 그 칸은 비게 됩니다. 이후 연속된 kk개의 칸에는 빈 칸이 적어도 mm개 있어야 합니다. 마지막으로 참가자는 판에 남은 동전을 모두 가져갑니다. 참가자가 합계 aa개의 동전을 가져갔다면, 상금은 a−ba-b입니다.

참가자가 보장받을 수 있는 최대 상금을 구하세요.

입력

첫 줄에 정수 nn, kk, mm이 주어집니다 (1≤m<k≤n≤2000001 \le m < k \le n \le 200000).

둘째 줄에는 정수 nn개 aia_i가 주어집니다 (1≤ai≤1091 \le a_i \le 10^9).

출력

참가자가 보장받을 수 있는 최대 상금을 나타내는 정수 하나를 출력하세요.

힌트

첫 번째 예시에서 참가자는 b=5b = 5를 고릅니다. 동전이 55개 이하인 칸에서 동전을 제거하면 칸의 동전 수는 [0,7,0,0,0,9,0,6][0, 7, 0, 0, 0, 9, 0, 6]이 됩니다. 참가자는 칸에서 모두 2222개의 동전을 가져갑니다. 앞서 지불한 55개를 고려하면 상금은 1717입니다.

두 번째 예시에서는 연속된 두 칸마다 빈 칸이 하나 이상 있어야 하므로, 참가자는 b=2b = 2를 골라야 합니다. 그 뒤에는 동전이 남지 않고, 상금은 −2-2로 음수가 됩니다.

예제2

  1. 예제 1

    입력
    8 4 2
    3 7 4 1 5 9 2 6
    
    예상 출력
    17
    
  2. 예제 2

    입력
    5 2 1
    2 2 2 2 2
    
    예상 출력
    -2