만드는 중입니다

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

감시 구역 나누기

면접 대비

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

요약
복도에 있는 N개의 방을 M개의 연속된 구역으로 나눌 때, 구역 안 방 사이 거리의 합이 가장 큰 구역의 값을 최소로 만드는 값을 구합니다.
난이도

보통10점 중 6점

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

문제

Albert는 지하 연구소의 보안을 강화하려고 감시용 로봇을 사용해 보려 한다. 지하 연구소에는 방이 NN개 있으며, 왼쪽부터 오른쪽까지 1번부터 NN번까지 번호가 붙어 있다. 아래 그림처럼 긴 복도 형태이며, 이 경우 N=5N = 5이다.

ii번째 방과 i+1i+1번째 방 사이의 거리는 did_i이다. 아래 그림의 경우 d=[2,3,1,4]d = [2, 3, 1, 4]이다. 편의상 두 방 i,ji, j 사이의 거리를 D(i,j)D(i, j)로 나타낸다. 따라서 i<ji \lt j일 때 D(i,j)=∑i≤k<jdkD(i, j) = \sum_{i \le k \lt j} d_k이고, D(i,i)=0D(i, i) = 0이다.

그림의 경우 D(1,4)=d1+d2+d3=6D(1, 4) = d_1+d_2+d_3 = 6이고, D(3,4)=d3=1D(3, 4) = d_3 = 1이다.

Albert는 감시용 로봇 MM대를 쓰고 싶다. 먼저 NN개의 방을 MM개의 연속한 구역으로 나누고, 각 구역을 로봇 한 대가 24시간 감시하게 한다. 각 구역은 하나 이상의 연속한 방으로 이루어지며, 각 방은 반드시 하나의 구역에 속해야 한다. 로봇은 자신이 맡은 구역의 방들을 감시하는데, 이때 필요한 에너지는 그 구역에 속한 서로 다른 방 사이 거리의 총합이다. 구역이 ii번 방부터 jj번 방까지 포함할 때, 이 구역을 감시하는 데 필요한 에너지 S(i,j)S(i, j)는 S(i,j)=∑i≤k≤l≤jD(k,l)S(i, j) = \sum_{i \le k \le l \le j} D(k, l)이다. 이 정의에 따르면 S(i,i)=0S(i, i) = 0이다. 이 경우 로봇은 ii번 방에 가만히 있으면 되므로 에너지를 거의 쓰지 않는다.

M=2M = 2인 경우 5개의 방을 2개의 구역으로 나누는 방법은 4가지이다. 곡선은 두 방 사이의 거리 D(⋅,⋅)D(\cdot, \cdot) 값을 나타낸다.

  • 첫 번째 방법은 [1, 3]과 [4, 5]로 나누는 경우이다. 첫 번째 구역의 에너지는 D(1,2)+D(1,3)+D(2,3)=10D(1, 2) + D(1, 3) + D(2, 3) = 10이고, 두 번째 구역의 에너지는 D(4,5)=4D(4, 5) = 4이다.
  • 두 번째 방법은 [1, 2]와 [3, 5]로 나누는 경우이다. 각 구역의 에너지는 2와 10이다.
  • 세 번째 방법은 [1, 1]과 [2, 5]로 나누는 경우이다. 첫 번째 구역의 에너지는 0이고, 두 번째 구역의 에너지는 25이다.
  • 네 번째 방법은 [1, 4]와 [5, 5]로 나누는 경우이다. 첫 번째 구역의 에너지는 21이고, 두 번째 구역의 에너지는 0이다.

배터리 용량이 너무 크면 비용이 많이 들기 때문에, Albert는 각 로봇이 필요로 하는 에너지의 최댓값을 최소로 만들고 싶다. 즉, MM개 구역이 필요로 하는 에너지의 최댓값을 최소화한다. 위 경우에는 첫 번째 또는 두 번째 방법이 최적이며, 정답은 10이다.

Albert를 도와 NN, MM, dd가 주어졌을 때, NN개의 방을 MM개의 연속한 구역으로 나눌 때 각 구역이 필요로 하는 에너지 최댓값의 최솟값을 구하자.

입력

첫 번째 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 NN과 MM이 공백으로 구분되어 주어진다. 둘째 줄에는 N−1N-1개의 정수가 공백으로 구분되어 주어지며, 이는 d1,d2,…,dN−1d_1, d_2, \dots, d_{N-1}의 값이다.

출력

각 테스트 케이스의 정답을 한 줄에 하나씩 출력한다.

제한

  • 1≤T≤201 \le T \le 20
  • 4≤N≤300004 \le N \le 30000
  • 1≤M≤N1 \le M \le N
  • 1≤i<N1 \le i \lt N인 모든 ii에 대하여: 1≤di≤1061 \le d_i \le 10^6

예제1

  1. 예제 1

    입력
    5
    5 2
    2 3 1 4
    5 3
    2 3 1 4
    5 4
    2 3 1 4
    5 5
    2 3 1 4
    8 3
    1 3 2 3 1 2 3
    
    예상 출력
    10
    2
    1
    0
    8