AT_abc308_c [ABC308C] Standings
Description
[problemUrl]: https://atcoder.jp/contests/abc308/tasks/abc308_c
$ 1 $ から $ N $ の番号が付いた $ N $ 人がコイントスを何回かしました。人 $ i $ は $ A_i $ 回表を出し、$ B_i $ 回裏を出したこと分かっています。
人 $ i $ のコイントスの **成功率** は $ \displaystyle\frac{A_i}{A_i+B_i} $ で定義されます。人 $ 1,\ldots,N $ の番号を、成功率の高い順に並び替えてください。成功率が同じ人が複数いる場合、その中では人の番号が小さい順になるように並び替えてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ B_1 $ $ \vdots $ $ A_N $ $ B_N $
Output Format
人 $ 1,\ldots,N $ の番号を成功率の高い順に空白区切りで出力せよ。成功率が同じ人の番号は昇順に並び替えて出力せよ。
Explanation/Hint
### 制約
- $ 2\leq\ N\ \leq\ 2\times\ 10^5 $
- $ 0\leq\ A_i,\ B_i\leq\ 10^9 $
- $ A_i+B_i\ \geq\ 1 $
- 入力される数値は全て整数
### Sample Explanation 1
人 $ 1 $ の成功率は $ 0.25 $、人 $ 2 $ の成功率は $ 0.75 $、人 $ 3 $ の成功率は $ 0.5 $ です。 成功率の高い順に並び替えると出力例の順番になります。
### Sample Explanation 2
人 $ 1,2 $ は成功率が同じなので、番号の昇順に出力することに注意してください。