만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

배열 덮기

시간 제한3초메모리 제한512 MB

요약
배열의 모든 원소가 최소 하나의 부분배열에 포함되도록 서로 다른 연속 부분배열 k개를 고를 때, 선택한 부분배열 합의 총합 최댓값을 구합니다.
난이도

어려움10점 중 8점

유형
그리디, 힙, 누적 합
정답자
아직 제출이 없습니다

문제

미샤에게 길이가 nn인 정수 배열이 있다. 미샤는 배열의 모든 원소가 선택한 부분 배열 중 적어도 하나에 포함되도록 서로 다른 연속 부분 배열을 kk개 선택하려고 한다.

미샤는 각 부분 배열의 원소 합을 구하고 이 합들을 모두 더한다. 이때 얻을 수 있는 값이 최대가 되도록 부분 배열을 고른다.

입력

첫 번째 줄에 두 정수 nn과 kk(1≤n≤1000001 \le n \le 100000, 1≤k≤n⋅(n+1)21 \le k \le \frac{n \cdot (n + 1)}{2})가 주어진다. 각각 배열의 원소 개수와 반드시 선택해야 하는 서로 다른 부분 배열의 개수이다.

두 번째 줄에는 배열의 원소인 정수 nn개 aia_i(−50000≤ai≤50000-50000 \le a_i \le 50000)가 주어진다.

출력

서로 다른 부분 배열 kk개를 골라 미샤가 얻을 수 있는 최댓값을 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    5 4
    6 -4 -10 -4 7
    
    예상 출력
    11