有一个任务是将n个人集合起来,但每个人都有一个懒散值。已知一次可以将两群人集合在一起,所花费的体力是这两群人的懒散值之和。可以看出,经过n-1次集合,所有的人就集合在一起了。例如有3个人,懒散值依次为1,2,9。可以先将懒散值为1、2的合并为一群,新群数目为3,耗费体力为3。接着,将新群与懒散值为9的合并,又得到新的群,数目为12,耗费体力为12。所以总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。那么,怎样集合,花费的体力最少呢?
输入数据包括两行,第一行是一个整数n(1≤n≤10 000),表示人数。第二行包含n个整数,用空格分隔,第i个整数ai(1≤ai≤20 000)是第i个人的懒散值。
输出一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于2^31。
3 1 2 9
15
【数据规模】 对于30%的数据,保证有n≤1 000: 对于50%的数据,保证有n≤5 000; 对于全部的数据,保证有n≤10 000。
时间限制 | 1 秒 |
内存限制 | 128 MB |