#900. 抛硬币

抛硬币

题目描述

NN 个人,编号为 11NN。他们抛了若干次硬币,已知第 ii 个人抛出了 AiA_i 次正面和 BiB_i 次反面。

ii 个人的抛硬币“成功率”定义为 AiAi+Bi\frac{A_i}{A_i + B_i}

请将这 NN 个人按照成功率从大到小(降序)进行排序。如果有多人的成功率相同,则按照他们的编号从小到大(升序)进行排序,并输出排序后的人员编号序列。

输入格式

第一行包含一个正整数 NN —— 表示人的数量。

接下来 NN 行,每行包含两个整数 AiA_iBiB_i —— 分别表示第 ii 个人抛出正面的次数和反面的次数。

输出格式

输出一行 NN 个整数,表示按照规则排序后的人的编号。相邻两个整数之间用一个空格隔开。

样例输入 1

3
1 3
3 1
2 2

样例输出 1

2 3 1

样例输入 2

2
1 3
2 6

样例输出 2

1 2

样例输入 3

4
999999999 1000000000
333333333 999999999
1000000000 999999997
999999998 1000000000

样例输出 3

3 1 4 2

说明

样例解释

  • 在第一个样例中,11 号的成功率是 0.250.2522 号的成功率是 0.750.7533 号的成功率是 0.50.5。将他们按照成功率从大到小排序,得到的顺序是 22 号、33 号、11 号。
  • 在第二个样例中,11 号和 22 号的成功率同为 0.250.25。由于他们的成功率相同,因此按照编号从小到大进行排序,输出 1 2

数据范围

对于所有测试点,保证:

  • 2N2×1052 \le N \le 2 \times 10^5
  • 0Ai,Bi1090 \le A_i, B_i \le 10^9
  • Ai+Bi1A_i + B_i \ge 1
  • 保证所有的输入值均为整数。