만드는 중입니다

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

Fascination Street

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

요약
블록별 설치 비용 배열과 최대 K번의 비용 교환이 주어졌을 때, 모든 블록이 직접 켜지거나 이웃한 켜진 블록을 가지도록 하는 최소 설치 비용을 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

Fascination Street이라는 거리는 길이가 같은 NN개의 블록으로 나뉘어 있다. 각 블록 ii (1≤i≤N1 \leq i \leq N)에 대해, i>1i > 1이면 왼쪽에 블록 i−1i-1이 있고, i<Ni < N이면 오른쪽에 블록 i+1i+1이 있다.

이름과 달리 이 거리는 밤이 되면 어둡고 으스스하다. 이를 해결하려고 Robert는 일부 블록에 가로등을 설치하기로 했다. 블록 ii에 가로등을 설치하는 비용은 WiW_i이고, 총비용은 각 설치 비용의 합이다. 설치한 뒤에는 모든 블록에 가로등이 있거나, 왼쪽 또는 오른쪽 블록에 가로등이 있어야 한다.

Robert는 교환으로 비용을 줄일 수 있다. 설치하기 전에 서로 다른 두 블록 ii와 jj를 골라 위치를 맞바꾸면, WiW_i와 WjW_j의 값이 서로 바뀐다. 교환 자체에는 비용이 들지 않지만, Robert가 수행할 수 있는 교환은 최대 KK번이다.

배열 WW와 교환 횟수의 상한 KK가 주어졌을 때, 거리 전체를 밝히는 데 드는 최소 비용을 구하라.

입력

첫 줄에 공백으로 구분된 두 정수 NN과 KK가 주어진다. NN은 블록의 개수이고, KK는 Robert가 수행할 수 있는 교환의 최대 횟수이다. (1≤N≤2500001 \leq N \leq 250000, 0≤K≤90 \leq K \leq 9)

둘째 줄에는 공백으로 구분된 정수 NN개 W1,W2,⋯ ,WNW_1, W_2, \cdots, W_N이 주어진다. WiW_i는 블록 ii에 가로등을 설치하는 비용이다. (0≤Wi≤1090 \leq W_i \leq 10^9)

출력

거리 전체를 밝히는 최소 비용을 정수 하나로 출력한다.

예제4

  1. 예제 1

    입력
    5 0
    1 3 10 3 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5 1
    1 3 10 3 1
    
    예상 출력
    2
    
  3. 예제 3

    입력
    12 0
    317 448 258 208 284 248 315 367 562 500 426 390
    
    예상 출력
    1525
    
  4. 예제 4

    입력
    12 2
    317 448 258 208 284 248 315 367 562 500 426 390
    
    예상 출력
    1107