설명
길이 \(N\)인 정수 수열 \(a_1, \dots, a_N\)이 주어진다. 이 수열에서 서로 겹치지 않는 연속 부분 수열(구간)을 정확히 \(K\)개 고른다. 각 구간은 비어 있지 않아야 하며, 어떤 두 구간도 원소를 공유하지 않아야 한다.
고른 \(K\)개 구간에 속한 원소들의 총합을 최대로 만들 때, 그 최댓값을 구하여라. 음수만 있어도 정확히 \(K\)개를 골라야 한다.
제약
\(1 \le K \le N \le 300{,}000\)
\(-10^9 \le a_i \le 10^9\)
입력 형식
첫 줄에 \(N\)과 \(K\)가 주어진다.
둘째 줄에 \(N\)개의 정수 \(a_1, \dots, a_N\)이 주어진다.
출력 형식
정확히 \(K\)개의 겹치지 않는 구간을 골랐을 때 원소 합의 최댓값을 출력한다.
예제 1
입력
6 2
1 -2 3 4 -5 6
출력
13설명
구간 \([3,4]\)(합 \(7\))과 \([6]\)(합 \(6\))을 고르면 합 \(13\). 이것이 최대이므로 답은 13.
예제 2
입력
3 1
-1 -2 -3
출력
-1설명
모두 음수지만 정확히 \(1\)개 구간을 골라야 한다. 가장 큰 단일 원소 \(-1\)을 고르는 것이 최선이므로 답은 -1.
문제 정보
riseoj 작성
출처 Original
태그