Coding is the closest thing we have to superpower !

1740 : 贪心-排队接水
描述

n个人在一个水龙头前排队接水,假如每个人接水的时间为T_i,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。

如果有两种顺序使得n个人的平均等待时间都最小,则让序号小的人排在前面。

输入

共两行,第一行为n(1≤n≤1000);第二行分别表示第1个人到第n个人每人的接水时间(不超过1000)T_1,T_2,…,T_n,每个数据之间有1个空格,数据均为整数。

输出

有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

样例

输入

10							
56 12 1 99 1000 234 33 55 99 812

输出

3 2 7 8 1 4 9 6 10 5
291.90
提示

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。

贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。局部最优并不总能获得整体最优解,但通常能获得近似最优解

标签
语言:
主题: