#AS2401. Rings(高级)
Rings(高级)
Description
ACSL Rings 是一款游戏,目标是通过将球扔过 5 个圆环之一来得分。积分规则如下:
- 穿过蓝色 (Aqua) 或红色 (Red) 圆环 - 1 分
- 穿过橙色 (Orange) 或绿色 (Green) 圆环 - 3 分
- 穿过黑色 (Black) 圆环 - 6 分
- 穿过两个圆环重叠的空间 - 两个圆环的分数之和加 1
- 任何在子字符串末尾带有 “+” 的投掷,表示远距离投掷,额外获得 2 分
我们使用单个字母来代表上述每种颜色:蓝色 (A)、红色 (R)、橙色 (O)、绿色 (G) 和黑色 (B)。重叠区域由 2 个字母表示:蓝色和橙色 (AO 或 OA)、橙色和黑色 (OB 或 BO)、黑色和绿色 (BG 或 GB)、以及绿色和红色 (GR 或 RG)。
给定一个整数 ,表示玩家人数,随后是 个单独的字符串,表示每个玩家所有穿过至少一个圆环的投掷结果。 使用格式 “玩家序号-分数” (player#-score) 降序输出每个玩家的分数字符串,每个字符串之间用单个空格分隔。 平局根据投掷次数打破;投掷次数越少越好。我们保证所有平局都能被打破。
Input Format
输入将由一个整数组成,表示玩家的数量,随后是每个玩家的结果字符串,如上所述。
Output Format
输出一个字符串,按降序排列每个玩家的分数,格式为 “player#-score”,每个分数之间用单个空格分隔。
Explanation
示例:
Input
3
A R AO+
B+ GR OA B
G OB+
解析:
-
玩家 1 的投掷穿过蓝色、红色以及蓝色和橙色圆环。
- A = 1
- R = 1
- AO+ = (1 + 3 + 1) + 2 = 7 (AO重叠为1+3+1=5,+号额外加2分)
- 总分 = 1 + 1 + 7 = 9。
- 投掷次数 = 3。
-
玩家 2 的投掷为 B+, GR, OA, B。
- B+ = 6 + 2 = 8
- GR = 3 + 1 + 1 = 5
- OA = 3 + 1 + 1 = 5
- B = 6
- 总分 = 8 + 5 + 5 + 6 = 24。
- 投掷次数 = 4。
-
玩家 3 的投掷为 G, OB+。
- G = 3
- OB+ = (3 + 6 + 1) + 2 = 12
- 总分 = 3 + 12 = 15。
- 投掷次数 = 2。
排名:
- 玩家 2 (24分)
- 玩家 3 (15分)
- 玩家 1 (9分)
输出字符串为 2-24 3-15 1-9。
Sample Input / Output
3
G R G R B G B G O B O B O B A O A O A O A O
B B B G G A A A O B A O B G B G A O A O
G B O A A A A B B B O O O G G G A O O B G R B G
3-78 1-69 2-66
6
R R G G AO BG GB B
AO GR+ A B AO+ BG BG BO
A A R R G G O O
BG GB GR+ RG O O+ O A+ B
GR RG A+ A O O+ B G
A B+ B O G+ G G AO OB GR BG
6-59 2-56 4-52 1-39 5-31 3-16