좌석
시간 제한2초메모리 제한512 MB
N명의 승객 중 K명을 L석 좌석에 앉혀, 각 승객의 A_i와 인접한 빈자리당 B_i의 합을 최대화하는 값을 K마다 구합니다.
문제
X 도시의 지하철은 조금 특이하다. 열차는 객차 한 칸으로 이루어져 있고, 객차에는 한 줄로 늘어선 좌석이 개 있다. 객차에는 번부터 번까지 번호가 붙은 승객이 명 타고 있다. 각 승객의 쾌적함은 다음과 같이 정해진다.
- 승객이 서 있으면 쾌적함은 이다.
- 승객이 앉으면 앉는 것만으로 의 쾌적함을 얻고, 그 승객과 이웃한 승객 또는 좌석 끝 사이에 있는 빈 좌석마다 의 쾌적함을 추가로 얻는다.
예를 들어 승객이 3명이고 , , , , , 이며 좌석이 개라고 하자. 빈 좌석을 _로 나타내면 다음과 같이 앉아 있는 경우를 생각할 수 있다.
_ 0 _ _ 1 _
승객 2는 서 있다.
- 승객 0은 앉아서 를 얻고, 빈 좌석(왼쪽 1석, 오른쪽 2석)으로 을 얻어 합계 이다.
- 승객 1은 앉아서 을 얻고, 빈 좌석(왼쪽 2석, 오른쪽 1석)으로 을 얻어 합계 이다.
- 승객 2는 서 있으므로 이다.
모든 승객의 쾌적함 합계는 이다.
, 과 각 승객의 특성이 주어졌을 때, 앉은 승객 수가 명부터 명까지인 각 경우에 대해 쾌적함 합계의 최댓값을 구하는 프로그램을 작성하라.
입력
첫 번째 줄에 승객 수 과 좌석 수 이 두 정수로 주어진다. 이어지는 개의 줄에는 승객 의 특성인 음이 아닌 정수 와 가 주어진다.
출력
개의 줄을 출력한다. 번째 줄에는 정확히 명이 앉아 있을 때 승객들이 얻을 수 있는 쾌적함 합계의 최댓값을 출력한다. 이면 명을 개의 좌석에 앉히는 유효한 배치가 없으므로 을 출력한다.