#ds. 打水

打水

Problem Description

咕噜噜村庄有n个家庭,但是只有一个水井,每个家庭每天都要来水井打一次水,所以需要排队。因为每个家庭的用水量不同,所以每个家庭的打水时间不同。考虑到排队排在后面的家庭可能会等比较长的时间,为了让这个现象有所缓解,现在需要你来帮助他们找到一个排队的方案,使得所有家庭等待的时间总和最少。

Input Format

输入第一行包含一个整数 N(N<=50000),表示有 N 个家庭;第二行包含 N 个用一个空格隔开的整数,表示每个家庭打水所需的时间$T_1,T_2,…T_n(0<=Ti<=100000)$。

Output Format

输出一行一个整数,表示所有家庭等待时间总和的最小值。

5
2 3 1 5 4
20

Hint

样例解释:

排队顺序(用每个家庭的编号表示)应该是 3,1,2,5,4,每家庭打水所需的时间分别是 1,2,3,4,5, 这样的话每个家庭等待的时间分别是 0,1,3, 6,10,所以总的等待时间就是 0+1+3+6+10 = 20,不可能找到比这个等待时间更少的方案了。

数据范围对于 15%的数据满足:N<=30;对于 30%的数据满足:N<=100;对于 50%的数据满足:N<=1000;对于 100%的数据满足:1<=N<=50000。

Source

GLLXX https://vip.gllxx.com