#YHCSPJMN130003. 积木堆叠

积木堆叠

积木堆叠

题目背景

在育华学校的数学实践活动中,T2之王面临整理积木的任务。需要将散落的积木堆成不超过指定数量的堆,每次移动积木会消耗一定能量,能量值为移动前后坐标差的绝对值。同学们需要帮助T2之王计算出完成任务的最小能量消耗。

题目描述

数字线上有 n n 个积木分布在不同整数坐标处,T2之王计划将这些积木堆成不超过 m m 堆。从坐标 X X 移动积木到坐标 Y Y ,消耗能量为 XY |X - Y| 。需计算把积木堆成不超过 m m 堆时,消耗的最小能量值。

输入格式

第一行输入两个整数 n n m m ,分别表示积木总数量、最大允许堆数。
第二行输入 n n 个整数 a1,a2,,an a_1, a_2, \dots, a_n ,代表每个积木所处的坐标值。

输出格式

输出一个整数,为堆成不超过 m m 堆所需消耗的最小能量值。

样例

样例输入 1

4 1  
10 5 3 12  

样例输出 1

9  

样例解释

将坐标 3 的积木移到 5(消耗 53=2 5 - 3 = 2 ),坐标 5 的积木移到 10(消耗 105=5 10 - 5 = 5 ),坐标 10 的积木移到 12(消耗 1210=2 12 - 10 = 2 ),堆成 1 堆,总消耗 2+5+2=9 2 + 5 + 2 = 9

样例输入 2

4 2  
1 20 3 100  

样例输出 2

19  

样例解释

将坐标 1 的积木移到 3(消耗 31=2 3 - 1 = 2 ),坐标 20 的积木移到 3(消耗 203=17 20 - 3 = 17 ),堆成 2 堆(坐标 3 和 100 处 ),总消耗 2+17=19 2 + 17 = 19

数据规模与测试点(共20个测试点)

测试点编号 n n 范围 m m 范围 ai a_i 范围 特殊性质
#1~#2 103 \leq 10^3 m=1 m = 1 1ai103 1 \leq a_i \leq 10^3
#3~#6 1mn 1 \leq m \leq n 109ai109 -10^9 \leq a_i \leq 10^9
#7~#10 106 \leq 10^6
#11~#14
#15~#18
#19~#20