#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)。

给定一个整数 nn,表示玩家人数,随后是 nn 个单独的字符串,表示每个玩家所有穿过至少一个圆环的投掷结果。 使用格式 “玩家序号-分数” (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。

排名:

  1. 玩家 2 (24分)
  2. 玩家 3 (15分)
  3. 玩家 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