#5092. AtCoder Janken 2

0

AtCoder Janken 2

AtCoder Janken 2

题目描述

NN 位 AtCoder 用户聚集来玩 AtCoder RPS 2。第 ii 位用户的用户名是 SiS_i,他们的评分是 CiC_i。 AtCoder RPS 2 的玩法如下:

将数字 0,1,…,N−10, 1, \dots, N - 1 按用户名的字典序(lexicographical order)分配给用户。 令 TT 为 NN 名用户评分之和。被分配到编号 T mod NT \bmod N 的用户是赢家。

输出该赢家的用户名。

什么是字典序?

字典序,简单来说,就是“单词在字典中出现的顺序”。更精确地说,用于判定由小写英文字母组成的两个不同字符串 SS 和 TT 的顺序的算法如下:

这里,将“SS 的第 ii 个字符”记为 SiS_i。如果 SS 在字典序上小于 TT,我们写作 S<TS \lt T;如果 SS 在字典序上大于 TT,我们写作 S>TS \gt T。

    令 $L$ 为 $S$ 与 $T$ 中较短字符串的长度。检查是否存在 $i=1,2,\dots,L$ 使得 $S_i$ 与 $T_i$ 不相同。 如果存在某个 $i$ 使得 $S_i \neq T_i$,令 $j$ 为最小的这样的 $i$。比较 $S_j$ 与 $T_j$。如果 $S_j$ 在字母表中排在 $T_j$ 之前,则 $S \lt T$。否则 $S \gt T$。算法到此结束。

    如果不存在这样的 ii 使得 Si≠TiS_i \neq T_i,比较 SS 与 TT 的长度。如果 SS 比 TT 短,则 S<TS \lt T。如果 SS 比 TT 长,则 S>TS \gt T。算法到此结束。

输入格式

输入从标准输入给出,格式如下: NN S1S_1 C1C_1 S2S_2 C2C_2 ⋮\vdots SNS_N CNC_N

输出格式

在一行中输出答案。

3
takahashi 2
aoki 6
snuke 5
snuke
3
takahashi 2813
takahashixx 1086
takahashix 4229
takahashix

提示

1≤N≤1001 \leq N \leq 100 SiS_i 是由小写英文字母组成的字符串,长度在 33 到 1616(含)之间。 S1,S2,…,SNS_1, S_2, \dots, S_N 两两互不相同。 1≤Ci≤42291 \leq C_i \leq 4229 CiC_i 是整数。三位用户的评分之和是 1313。将他们的名字按字典序排序得到 aokiaoki, snukesnuke, takahashitakahashi,因此 aokiaoki 被分配编号 00,snukesnuke 为 11,takahashitakahashi 为 22。 由于 13 mod 3=113 \bmod 3 = 1,输出被分配编号 11 的 snukesnuke。

标签: AtCoder|abc354B

来源

AtCoder|abc354B