编程题
### 问题描述
有一支有 $n$ 名士兵的军队,士兵从 $1$ 到 $n$ 编号,编号为 $i$ 的士兵有武力值 $a_i$ ,初始时士兵按照武力值从低到高进行排序。
但是军队内部不是特别团结,特别是军队统帅将他们分成了 $k$ 个连续的小队之后。每隔一段时间每个小队就会发生一次内部打斗事件,打斗发生后,每个小队都会损失部分战斗力,损失的战斗力为士兵武力值最高者与武力值最低者的武力值之差。
假如你是统帅,现在面对这样一支武力值从低到高排列的军队,需要把他们分成 $k$ 个小队。你应如何分配,才能使每次打斗事件发生后, $k$ 个小队的战斗力损失最小。
要求 $k$ 个小队中,每个小队都不能为空,且每名士兵都必须在一个小队中。
### 输入格式
第一行包含两个整数 $n,k$ ,分别表示士兵总人数和需要分成的小队数。
第二行包含 $n$ 个整数 $a_1,a_2,…,a_n$ ,表示军队中士兵的武力值。保证这些数据按照非降序排列,即若有 $i>1$ ,必有 $a_i>a_{i-1}$ 。
### 输出格式
输出一个整数,表示使得 $k$ 个小队战斗力损失最小时的损失之和。
### 样例输入
```
6 3
4 8 15 16 23 42
```
### 样例输出
```
12
```
### 评测数据规模
对于所有的评测数据, $1\leq{k}\leq{n}\leq{10^5 },1\leq{a_i}\leq{10^9 }$ 。