AT_abc354_b [ABC354B] AtCoder Janken 2
Description
[problemUrl]: https://atcoder.jp/contests/abc354/tasks/abc354_b
$ N $ 人の AtCoder ユーザーが集まり、 **AtCoderじゃんけん2** を行います。$ i $ 人目のユーザー名は $ S_i $ 、レートは $ C_i $ です。
AtCoderじゃんけん2 は以下の手順で行われます。
- それぞれのユーザーに、ユーザー名の辞書順に $ 0,\ 1,\ \dots\ ,N\ -\ 1 $ の番号を割り当てる。
- $ N $ 人のレートの総和を $ T $ とする。番号 $ T\ \bmod\ N $ を割り当てられたユーザーが勝者となる。
勝者のユーザー名を出力してください。
辞書順とは?辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、英小文字からなる相異なる文字列 $ S,\ T $ の大小を判定するアルゴリズムを以下に説明します。
以下では「 $ S $ の $ i $ 文字目の文字」を $ S_i $ のように表します。また、 $ S $ が $ T $ より辞書順で小さい場合は $ S\ \lt\ T $ 、大きい場合は $ S\ \gt\ T $ と表します。
1. $ S,\ T $ のうち長さが大きくない方の文字列の長さを $ L $ とします。$ i=1,2,\dots,L $ に対して $ S_i $ と $ T_i $ が一致するか調べます。
2. $ S_i\ \neq\ T_i $ である $ i $ が存在する場合、そのような $ i $ のうち最小のものを $ j $ とします。そして、$ S_j $ と $ T_j $ を比較して、$ S_j $ が $ T_j $ よりアルファベット順で小さい場合は $ S\ \lt\ T $ 、そうでない場合は $ S\ \gt\ T $ と決定して、アルゴリズムを終了します。
3. $ S_i\ \neq\ T_i $ である $ i $ が存在しない場合、$ S $ と $ T $ の長さを比較して、$ S $ が $ T $ より短い場合は $ S\ \lt\ T $ 、長い場合は $ S\ \gt\ T $ と決定して、アルゴリズムを終了します。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ C_1 $ $ S_2 $ $ C_2 $ $ \vdots $ $ S_N $ $ C_N $
Output Format
答えを一行に出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100 $
- $ S_i $ は英小文字からなる長さ $ 3 $ 以上 $ 16 $ 以下の文字列
- $ S_1,\ S_2,\ \dots\ ,S_N $ は全て異なる
- $ 1\ \leq\ C_i\ \leq\ 4229 $
- $ C_i $ は整数
### Sample Explanation 1
$ 3 $ 人のレートの総和は $ 13 $ です。また、それぞれの名前を辞書順に並び替えると、 `aoki` `snuke` `takahashi` の順になるので `aoki` に番号 $ 0 $ が、 `snuke` に 番号 $ 1 $ が、 `takahashi` に番号 $ 2 $ が割り当てられます。 $ 13\ \bmod\ 3\ =\ 1 $ なので、番号 $ 1 $ を割り当てられた `snuke` を出力します。