#2849. 合并果子(guozi)

合并果子(guozi)

题目描述

徐老师家里最近大丰收,收获的果子放成了一排,一堆一堆的堆在地上,总共有n堆。但是堆在地上,铺的太长,太碍事了,于是徐老师借了一辆小推车,可以每次把一整堆的果子合并到另一堆里去(这里我们认为不管一堆果子有多少个,一次都能搬运完) 如果徐老师将位置 A的果子移动到位置 B,需要消耗 |A-B|的体力。徐老师实在是太懒了,他也懒得把所有果子合并成一堆,他只要求最后果子不超过 m堆,别碍着人走路就好了。现在徐老师想知道,自己最少需要花费多少体力?

输入格式(文件名:guozi.in)

第一行包含两个整数,之间以一个空格隔开,分别是n,m,表示有 n 堆果子,m 代表最大堆数。 第二行包含 n个整数,aia_i表示第 i 堆果子在坐标值为aia_i处,之间以一个空格隔开。

输出格式(文件名:guozi.out)

一个整数,表示徐老师最少需要花费的体力

4 1
10 5 3 12
9

提示

1 ≤ n10610^6; 1 ≤ mn; 109−10^9aia_i10910^9