问题3145--2-3 公平的分配

3145: 2-3 公平的分配

时间限制: 1 Sec  内存限制: 256 MB
提交: 9  解决: 3
[状态] [讨论版] [提交] [命题人:]
题目描述

小李喜欢吃糖果,某天他吃到了他认为口感很好的糖果,他想要给他的朋友送上一些,但小李是学校的明星人物,他的朋友有太多太多,他不知道怎么分配糖果,于是选择随机发放糖果,最后一共有 n 个人分配到了糖果,每个人的糖果数分别为 a1, a2, a3, ... , an 。

但这引起了大家的不满,因为这样分配的不公平的,分到糖果少的人会感到伤心,具体来说,一但有两个人的糖果数的差值大于 1,即存在两个人的糖果数为 x, y 满足 |x - y| > 1 时,就会有同学产生不满。

于是小李请你帮他调解朋友之间的不满,你每次可以选择两名同学,让其中一名同学给另外一名同学一颗糖果,这被称为一次操作。

你现在要做的就是最小化操作次数,然后告诉小李你最少需要多少次,就可以让同学之间没有不满,达到公平的分配

可以证明,至少有一种方案使得分配公平。

输入

第一行一个正整数 n,表示分到糖果的人数 (n ≤ 5000)

第二行 n 个正整数 a1, a2, a3, ... , an,表示每个人分到糖果的数量 (∀ai ≤ 107)

输出
一个正整数,代表达到公平分配的最小化的操作次数
样例输入 Copy
5
3 13 9 4 7
样例输出 Copy
7
提示

样例解释:

第二个人给第一个人 4 颗糖果 a1→7, a2→9,操作数 +4

第二个人给第四个人 2 颗糖果 a2→7, a4→6,操作数 +2

第三个人给第四个人 1 颗糖果 a3→8, a4→7,操作数 +1

最终每人分别得到的糖果数为 [7, 7, 8, 7, 7]