AT_abc354_b [ABC354B] AtCoder Janken 2
题目描述
有 $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 < T$,大于则记作 $S > T$。
1. 设 $L$ 为 $S, T$ 中较短的字符串的长度。对于 $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 < T$,否则 $S > T$,算法结束。
3. 如果所有 $S_i = T_i$,则比较 $S$ 和 $T$ 的长度,若 $S$ 比 $T$ 短,则 $S < T$,否则 $S > T$,算法结束。
输入格式
输入按以下格式从标准输入读入。
> $N$
> $S_1$ $C_1$
> $S_2$ $C_2$
> $\vdots$
> $S_N$ $C_N$
输出格式
请输出答案,仅一行。
说明/提示
### 限制条件
- $1 \leq N \leq 100$
- $S_i$ 是由小写英文字母组成,长度不少于 $3$,不超过 $16$
- $S_1, S_2, \dots, S_N$ 均互不相同
- $1 \leq C_i \leq 4229$
- $C_i$ 为整数
### 样例解释 1
$3$ 人的分数总和为 $13$。将所有用户名按字典序排列后,顺序为 `aoki`、`snuke`、`takahashi`,因此 `aoki` 被分配编号 $0$,`snuke` 被分配编号 $1$,`takahashi` 被分配编号 $2$。$13 \bmod 3 = 1$,所以编号为 $1$ 的 `snuke` 获胜,输出 `snuke`。
由 ChatGPT 4.1 翻译