#P484. 打水

打水

描述

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

输入

第一行为一个整数 nn

第二行有 nn 个整数,第 ii 个整数 TiT_i,表示第 ii 个人的接水时间 TiT_i

输出

输出有两行:

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

输入样例 1

10
56 12 1 99 1000 234 33 55 99 812

输出样例 1

3 2 7 8 1 4 9 6 10 5
291.90

样例解释

排序后的接水时间为:1, 12, 33, 55, 56, 99, 99, 234, 812, 1000(按下标 3, 2, 7, 8, 1, 4, 9, 6, 10, 5)。

等待时间计算:

  • 第1人:00(无需等待)
  • 第2人:11(前1人的时间)
  • 第3人:1+12=131 + 12 = 13
  • 第4人:1+12+33=461 + 12 + 33 = 46
  • 第5人:1+12+33+55=1011 + 12 + 33 + 55 = 101
  • 第6人:1+12+33+55+56=1571 + 12 + 33 + 55 + 56 = 157
  • 第7人:1+12+33+55+56+99=2561 + 12 + 33 + 55 + 56 + 99 = 256
  • 第8人:1+12+33+55+56+99+99=3551 + 12 + 33 + 55 + 56 + 99 + 99 = 355
  • 第9人:1+12+33+55+56+99+99+234=5891 + 12 + 33 + 55 + 56 + 99 + 99 + 234 = 589
  • 第10人:1+12+33+55+56+99+99+234+812=14011 + 12 + 33 + 55 + 56 + 99 + 99 + 234 + 812 = 1401

总等待时间: $0 + 1 + 13 + 46 + 101 + 157 + 256 + 355 + 589 + 1401 = 2919$

平均等待时间: 291910=291.9\frac{2919}{10} = 291.9

提示

  • n1000n \leq 1000
  • Ti106T_i \leq 10^6
  • 不保证 TiT_i 不重复。