모든 블록이 자기 자신이나 이웃 블록의 가로등으로 덮이도록 가로등을 설치할 블록을 고르되, 설치 비용 배열의 두 원소를 최대 K번 교환한 뒤 총비용이 최소가 되게 한다.
어려움8동적 계획법그리디정렬완전 탐색아직 제출이 없습니다시간 제한1초메모리 제한1024 MBA street named Fascination Street is divided into N equal length of blocks. For each block i (1≤i≤N), it has block i−1 in its left side if i>1, and block i+1 in its right side if i<N.
Unlike its name, the street is infamous to be a dark and eerie place in the night. To solve this, Robert decided to install the streetlight for some of the blocks. The cost of installing a streetlight for i-th block is W_i, and the total cost is the sum of each installation cost. After installing, every block should either have a streetlight, or have a streetlight in its left or right block.
Robert also has some tricks to reduce the cost. Before installing the streetlight, Robert selects two distinct blocks i and j, and exchange their position. After the operation, the cost of installation is exchanged. In other words, the operation simply swaps the value of W_i and W_j. This operation have no cost, but Robert can only perform it at most K times.
Now, given the array W and the maximum possible number of operations K, you should find the minimum cost of lighting the whole street.
The first line contains two space-separated integers N, K. N is the number of blocks, and K is the maximum possible number of operations. (1≤N≤250000, 0≤K≤9)
The second line contains N space-separated integers W_1, W_2, ⋯, W_N, where W_i is the cost of installing a streetlight for i-th block. (0≤W_i≤109)
Print a single integer which contains the minimum cost of lighting the whole street.