철도 관리 구역


답안 제출

Points: 11
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

하나의 직선 철도 위에 \(N\)개의 역이 있다. 모든 역은 위치가 작은 순서대로 놓여 있으며, 역들을 총 \(K\)개의 관리 구역으로 나누려고 한다.

각 관리 구역에는 역이 적어도 하나 포함되어야 한다. 또한 하나의 관리 구역에 속하는 역들은 입력에서 서로 연속해야 한다. 관리 구역마다 포함된 역의 수가 같을 필요는 없다.

하나의 관리 구역을 관리하는 비용은 그 구역에서 가장 오른쪽에 있는 역의 위치와 가장 왼쪽에 있는 역의 위치의 차이이다. 역이 하나뿐인 관리 구역의 비용은 0이다.

역들을 \(K\)개의 관리 구역으로 나누었을 때, 모든 관리 구역의 비용 합의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 역의 수 \(N\)과 관리 구역의 수 \(K\)가 공백으로 구분되어 주어진다.

둘째 줄에 각 역의 위치 \(P_1, P_2, \dots, P_N\)이 공백으로 구분되어 주어진다.

출력

모든 관리 구역의 비용 합으로 가능한 최솟값을 출력한다.

제한 사항

  • \(1 \le N \le 300,000\)
  • \(1 \le K \le N\)
  • \(1 \le P_i \le 1,000,000,000\)
  • \(P_1 < P_2 < \dots < P_N\)

예제 입력 1

5 2
1 3 6 10 15

예제 출력 1

9

예제 설명 1

첫 번째 구역에 위치가 \(1, 3, 6, 10\)인 역을 배치하고, 두 번째 구역에 위치가 \(15\)인 역을 배치할 수 있다. 두 구역의 비용은 각각 \(10-1=9\)와 \(0\)이므로 비용의 합은 \(9\)이다.

예제 입력 2

4 4
10 20 30 40

예제 출력 2

0

코멘트

현재 작성된 코멘트가 없습니다.