Coding is the closest thing we have to superpower !
描述
有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
提示
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。
贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。局部最优并不总能获得整体最优解,但通常能获得近似最优解。
标签