Fascination Street
시간 제한1초메모리 제한1024 MB
블록별 설치 비용 배열과 최대 K번의 비용 교환이 주어졌을 때, 모든 블록이 직접 켜지거나 이웃한 켜진 블록을 가지도록 하는 최소 설치 비용을 구합니다.
문제
Fascination Street이라는 거리는 길이가 같은 개의 블록으로 나뉘어 있다. 각 블록 ()에 대해, 이면 왼쪽에 블록 이 있고, 이면 오른쪽에 블록 이 있다.
이름과 달리 이 거리는 밤이 되면 어둡고 으스스하다. 이를 해결하려고 Robert는 일부 블록에 가로등을 설치하기로 했다. 블록 에 가로등을 설치하는 비용은 이고, 총비용은 각 설치 비용의 합이다. 설치한 뒤에는 모든 블록에 가로등이 있거나, 왼쪽 또는 오른쪽 블록에 가로등이 있어야 한다.
Robert는 교환으로 비용을 줄일 수 있다. 설치하기 전에 서로 다른 두 블록 와 를 골라 위치를 맞바꾸면, 와 의 값이 서로 바뀐다. 교환 자체에는 비용이 들지 않지만, Robert가 수행할 수 있는 교환은 최대 번이다.
배열 와 교환 횟수의 상한 가 주어졌을 때, 거리 전체를 밝히는 데 드는 최소 비용을 구하라.
입력
첫 줄에 공백으로 구분된 두 정수 과 가 주어진다. 은 블록의 개수이고, 는 Robert가 수행할 수 있는 교환의 최대 횟수이다. (, )
둘째 줄에는 공백으로 구분된 정수 개 이 주어진다. 는 블록 에 가로등을 설치하는 비용이다. ()
출력
거리 전체를 밝히는 최소 비용을 정수 하나로 출력한다.