已知现在有 n 个人需要打电话,他们已经排好了队伍,每个人打电话的时间为 Ti。请你帮助他们找到一个排队打电话的队列方案,使队伍的平均等待时间更短。
输入格式
第一行:一个正整数 n,表示一共 n 个人。
第二行:n 个数字,分别表示第 1 个人到第 n 个人每人的打电话时间 T1,T2,…,Tn,每个数据之间有 1 个空格。
输出格式
第一行为一种排队顺序,即原先队列编号 1 到 n 的一种排列;
第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位,按照 C 语言的浮点数保留规则进行保留)。
输入样例
10
56 12 1 99 1000 234 33 55 99 812
输出样例
3 2 7 8 1 4 9 6 10 5
291.90
说明提示
1 ≤ n ≤ 100000
1 ≤ Ti ≤ 1000000
如果有多种排列都可以让平均等待时间最短,则输出其中字典序最小的序列。字典序指的是英文单词在字典中排序使用的规则顺序。
限制
时间限制:1000,内存限制:524288