题目描述
有 n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请找出这 n个人排队的一种顺序,使得n个人的平均等待时间最小。
输入
两行。 第一行,一个整数n,表示排队的人数。(n<=100) 第二行,用空格分隔的n个整数,分别表示每个人接水的时间Ti。
输出
两行。 第一行,为一种平均等待时间最短的排队顺序。 第二行,最短的平均等待时间(保留两位小数)。
输入样例1
10
56 12 1 99 1000 234 33 55 99 812
输出样例1
1 12 33 55 56 99 99 234 812 1000
291.90
样例解释
样例输出的排队方案每人等待的时间分别为:0、1、13、46、101、157、256、355、589、1401。求其平均值为291.90。
这道题主要难点就在于数学模型的建立,排队方案平均等待时间最短的隐含条件就是要求排队的序列是个递增序列,这样整体上的平均等待时间会是最短的(如果某个接水时间长的排在前面,则后面每个人的等待时间都要加上这个长的接水时间)
知识点:
1)L.sort()。排序(同类型元素排序),默认正序,正序也可以写作L.sort(reverse = False),倒序为L.sort(reverse = True)
2)sum(L[