정수 N개로 이루어진 리스트 L이 주어진다.
리스트 L={l1,l2,…,lN}을 인덱스 i에서 자르면 비어 있지 않은 두 조각 {l1,…,li}과 {li+1,…,lN}으로 나뉜다. 이렇게 잘라 나온 조각을 다시 자르는 식으로 모두 K−1번 자르면 조각이 K개 남고, 각 조각은 L에서 연속한 원소로 이루어진다.
i번째 조각의 최댓값을 Mi, 최솟값을 mi라 하고 di=Mi−mi로 정의한다.
ans=∑i=1Kdi가 최소가 되도록 L을 조각 K개로 자르고, 그때의 ans를 구하시오.
첫째 줄에 테스트 케이스의 개수 TC가 주어진다 (1≤TC≤120).
각 테스트 케이스 앞에는 빈 줄이 하나 있다. 테스트 케이스의 첫째 줄에는 두 정수 N과 K가 주어진다 (1≤K≤N≤400). 둘째 줄에는 리스트 L의 원소 N개가 주어지며, 모두 1000보다 작은 양의 정수다. L의 원소가 서로 다르다는 보장은 없다.
각 테스트 케이스마다 ans를 한 줄에 출력한다.
L=8 1 5 4 7인 경우를 보자.
K=2면 {8}과 {1,5,4,7}로 잘라 (8−8)+(7−1)=6이 된다. K=3이면 {8}, {1}, {5,4,7}로 잘라 0+0+3=3이다. K=4면 {8}, {1}, {5,4}, {7}로 잘라 0+0+1+0=1이다.
K=1이면 답은 리스트 전체의 최댓값에서 최솟값을 뺀 값이고, K=N이면 조각마다 원소가 하나뿐이라 답은 0이다.