#2815. 移动牛棚

移动牛棚

题目描述

约翰有N(2≤\red{N(2≤}N≤\red{N≤}1500)\red{1500)}头奶牛,S(N≤\red{S(N≤}S≤\red{S≤}1,000,000)\red{1,000,000)}个一字排开的牛棚.相邻牛棚间的距离恰好为1\red{1}.

奶牛们已经回棚休息,第i\red{i}只奶牛现在待在牛棚Pi\red{Pi}.如果两只奶牛离得太近,会让奶牛们变得很暴躁.所以约翰想给一些奶牛换一个棚,让她们之间的距离变得尽量大,并且尽管接近.令d=Trunc((s−1)/(n−1))\red{d=Trunc((s-1)/(n-1))}

所以约翰希望最终的奶牛的状态是:两只相邻奶牛间的距离与d\red{d}之差不超过1,\red{1,}而且让尽量多的间距等于d\red{d}.因此,对于4\red{4}只奶牛8\red{8}个棚的情况,1,\red{1,}3,\red{3,}5,\red{5,}8\red{8}或1,\red{1,}3,\red{3,}6,\red{6,}8\red{8}这样的安置情况是允许的,而1,\red{1,}2,\red{2,}4,\red{4,}7\red{7}或1,\red{1,}2,\red{2,}4,\red{4,}8\red{8}这样的情况是不允 许的.

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

输入格式

第1\red{1}行输入N\red{N}和S,\red{S,}接下来N\red{N}行一行输入一个Pi\red{Pi}.

输出格式`

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

样例

输入样例

5 10
2
8
1
3
9

输出样例

4

提示

最终移成1,\red{1,}3,\red{3,}5,\red{5,}8,\red{8,}10.\red{10.}