#3405. [USACO2009 Open]Grazing2 移动牛棚

[USACO2009 Open]Grazing2 移动牛棚

题目描述

约翰有 nn 头奶牛,ss 个一字排开的牛棚。相邻牛棚间的距离恰好为 11

奶牛们已经回棚休息,第 ii 只奶牛现在待在牛棚 pip_i。如果两只奶牛离得太近,会让奶牛们变得很暴躁。

所以约翰想给一些奶牛换一个棚,让她们之间的距离变得尽量大,并且尽管接近。

d=s1n1d=\lfloor \dfrac{s-1}{n-1} \rfloor(原题目使用了Trunc函数的表达式),约翰希望最终的奶牛的状态是:两只相邻奶牛间的距离与 dd 之差不超过 11,而且让尽量多的间距等于 dd

因此,对于 44 只奶牛 88 个棚的情况,(1,3,5,8)(1,3,5,8)(1,3,6,8)(1,3,6,8) 这样的安置情况是允许的,而 (1,2,4,7)(1,2,4,7)(1,2,4,8)(1,2,4,8) 这样的情况是不允许的。

帮助约翰移动奶牛,让所有奶牛的移动距离之和最小,同时让最终的安置情况符合约翰心意。

输入格式

第一行输入 nnss,接下来 nn 行一行输入一个 pip_i

输出格式

一个整数,表示最小的移动距离和。

5 10
2
8
1
3
9
4

题目来源

Silver

提示

最终移成 135810

数据规模与约定

对于 100%100 \% 的数据 2n15002 \le n \le 1500ns106n \le s \le 10^6