Сумма минимумов
면접 대비시간 제한1초메모리 제한1024 MB
양의 정수 배열을 k개의 연속한 비어 있지 않은 부분으로 나눌 때, 각 부분의 최솟값 합이 최대가 되도록 자르는 위치를 구한다.
문제
У Саши есть блокнот, состоящий из листочков, пронумерованных от 1 до . На -м листочке написано целое число .
Аня собирается разорвать блокнот на частей, для этого она выбирает число и разрывает блокнот так, что листки с 1 по -й оказываются в первой части, листки с -го по -й оказываются во второй части, и т.д., последняя -я часть содержит листки с -го по -й.
После того, как Аня разорвет блокнот, Саша найдет минимальное число в каждой из получившихся частей и сложит их. Аня хочет разорвать блокнот таким образом, чтобы получившаяся сумма была как можно больше. Помогите ей выбрать способ разорвать блокнот, чтобы максимизировать сумму минимальных значений.
입력
Первая строка ввода содержит два числа: и (). Вторая строка содержит целых чисел: ().
출력
На первой строке выведите максимальное значение суммы, которое удастся достичь Ане. На второй строке выведите значения , которые ей необходимо выбрать. Если вариантов разорвать блокнот, чтобы максимизировать искомую сумму несколько, выведите любой из них.
힌트
В приведенном примере Аня разорвала блокнот на части , , , и . Искомая сумма равна .