리스트 자르기
면접 대비시간 제한2초메모리 제한128 MB
리스트를 연속된 K개 구간으로 나누어 각 구간의 최댓값과 최솟값 차이 합을 최소화합니다.
문제
정수 개로 이루어진 리스트 이 주어진다.
리스트 을 인덱스 에서 자르면 비어 있지 않은 두 조각 과 으로 나뉜다. 이렇게 잘라 나온 조각을 다시 자르는 식으로 모두 번 자르면 조각이 개 남고, 각 조각은 에서 연속한 원소로 이루어진다.
번째 조각의 최댓값을 , 최솟값을 라 하고 로 정의한다.
가 최소가 되도록 을 조각 개로 자르고, 그때의 를 구하시오.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다 ().
각 테스트 케이스 앞에는 빈 줄이 하나 있다. 테스트 케이스의 첫째 줄에는 두 정수 과 가 주어진다 (). 둘째 줄에는 리스트 의 원소 개가 주어지며, 모두 보다 작은 양의 정수다. 의 원소가 서로 다르다는 보장은 없다.
출력
각 테스트 케이스마다 를 한 줄에 출력한다.
힌트
인 경우를 보자.
면 과 로 잘라 이 된다. 이면 , , 로 잘라 이다. 면 , , , 로 잘라 이다.
이면 답은 리스트 전체의 최댓값에서 최솟값을 뺀 값이고, 이면 조각마다 원소가 하나뿐이라 답은 이다.