TopCoder

User's AC Ratio

100.0% (3/3)

Submission's AC Ratio

100.0% (3/3)

Tags

Description

完整題本 PDF:中文英文馬來文

水果賽車是一款刺激的賽車遊戲,支援數千人同時線上遊玩,不過這款遊戲只支援單人競賽,對於想要組隊享受這款遊戲的玩家來說相當沮喪。為了解決這個問題,水果賽車競技社群定好了一套用來組隊參賽的規則:

  • 所有隊伍的遊戲名稱要有同一個隊伍前綴。
  • 同一隊的所有隊員的最長遊戲名稱共同前綴稱為隊伍標記
  • 任意兩隊的隊伍標記不可以以相同的字元開始。

儘管這個方法非常直覺,計算分數以及統計隊伍排名並不是件簡單的事情,為了支援線上賽容易遇到的狀況,例如斷線或者犯規等等,這個社群決定了以下用來紀錄比賽與排名的格式:

  • 紀錄中的每一個行由一位玩家的遊戲名稱與分數紀錄組成。每位玩家恰好有一行紀錄。
  • 分數紀錄是一格表達式,由數字、加號與減號組成。加減號不會連續出現。
    • 當一個數字前面沒有符號或是一個加號,這個數字是原始得分的一部分。一位玩家的原始得分是所有這類數字的總和。
    • 當一個數字前面是一個減號,這個數字是懲罰分數的一部分。一位玩家的懲罰分數是所有這類負數的總和。
  • 一位玩家的總分是他的原始得分加上他的懲罰分數。
  • 一支隊伍的總分是所有隊員的總分的總和。
  • 玩家與隊伍都以分數排名,高分者排名較高,平手時所有玩家或隊伍都會得到相同排名並跳過中間的排名。

儘管有這樣的排名規則,有時候還是難以一眼看出誰是獲勝的隊伍,這就是為什麼需要表格製作工具:表格製作工具會計算好所有分數與隊伍標記,並且以七個欄位的方式呈現:

  • 表格的每一列是一個玩家,這些列會先以隊伍排名排序,再以玩家排名排序。有相同名次時,以先出現在紀錄中的隊伍或玩家出現在前。
  • 每一個欄位的寬度恰好是該欄裡最長的格子的長度。
  • 每個格子的內容向左對齊,並且加上空格直到該欄位的寬度,除了最後一欄的格子後不額外加上空格。
  • 每兩個相鄰的欄位間需要額外插入一個空格字元。
  • 第一、第二、第三欄的內容依序是隊伍名次、隊伍標記、以及隊伍總分。這些內容只會在每個隊伍的第一列出現。
  • 第四、第五、第六、第七欄的內容依序是玩家名稱、玩家原始得分、玩家懲罰分數、以及玩家排名。
  • 第一欄以及最後一欄的名次以 $\texttt{\#}r$ 表示,其中 $r$ 是名次。
  • 第六欄中如果該玩家沒有懲罰分數,則留空,否則顯示一對圓括號包住的懲罰分數。

有了這個表格,比賽的各項數據就變得相當顯而易見了,你能幫忙這個社群設計一個強大的表格製作工具嗎?

Input Format

輸入的第一行有一個整數 $n$,代表遊戲紀錄的行數。
接下來 $n$ 行中每行有一個紀錄,以題目中敘述的格式呈現。

  • $1 \leq n \leq 2000$
  • 紀錄中至少有兩個隊伍。
  • 玩家名稱中只有 ASCII 編碼介於 33 到 126 中的字元(可顯示字元除去空白字元)。
  • 玩家名稱的長度介於 $1$ 與 $2000$ 之間。
  • 玩家的原始得分與懲罰分數絕對值不超過 $10 ^ 9$。
  • 每個玩家的分數紀錄長度介於 $1$ 與 $2000$ 之間。
  • 輸入的分數紀錄不會有前導零。請注意單一一個零仍舊可以出現。

Output Format

根據題目敘述的格式輸出表格。

Sample Input 1

12
RRLight 74
SS-Markus 97
#always 56
SS-Charlie 106
figure 68
#never 109
==GOAT== 72
RRDark 94
==FOUL== 26+20+16-10
discuss 84
figlover 89
disadvantage 83

Sample Output 1

#1 SS- 203 SS-Charlie   106       #2
           SS-Markus    97        #3
#2 RR  168 RRDark       94        #4
           RRLight      74        #8
#3 dis 167 discuss      84        #6
           disadvantage 83        #7
#4 #   165 #never       109       #1
           #always      56        #11
#5 fig 157 figlover     89        #5
           figure       68        #10
#6 ==  124 ==GOAT==     72        #9
           ==FOUL==     62  (-10) #12

Sample Input 2

12
(:P) 0+0+0-0-0-0
(OAO) 1+0+0-0+1
average 27
Annoying 33
Astute 33
SoloShow 10+10+12+100
aversion 12
(((.o.))) 15+15+16
Airplane 33
Awful 33
(._.)'' 12+14
averylongname 26+20

Sample Output 2

#1 A        132 Annoying      33   #4
                Astute        33   #4
                Airplane      33   #4
                Awful         33   #4
#1 SoloShow 132 SoloShow      132  #1
#3 aver     85  averylongname 46   #2
                average       27   #8
                aversion      12   #10
#4 (        74  (((.o.)))     46   #2
                (._.)''       26   #9
                (OAO)         2    #11
                (:P)          0    #12

Sample Input 3

3
A -1
A -1
B -2

Sample Output 3

#1 A -2 A 0 (-1) #1
        A 0 (-1) #1
#1 B -2 B 0 (-2) #3

Hints

Problem Source

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 2097152 65536
1 1000 2097152 65536
2 1000 2097152 65536
3 1000 2097152 65536
4 1000 2097152 65536
5 1000 2097152 65536
6 1000 2097152 65536
7 1000 2097152 65536
8 1000 2097152 65536
9 1000 2097152 65536
10 1000 2097152 65536
11 1000 2097152 65536
12 1000 2097152 65536
13 1000 2097152 65536
14 1000 2097152 65536
15 1000 2097152 65536
16 1000 2097152 65536
17 1000 2097152 65536
18 1000 2097152 65536
19 1000 2097152 65536
20 1000 2097152 65536
21 1000 2097152 65536
22 1000 2097152 65536
23 1000 2097152 65536
24 1000 2097152 65536
25 1000 2097152 65536
26 1000 2097152 65536
27 1000 2097152 65536
28 1000 2097152 65536
29 1000 2097152 65536
30 1000 2097152 65536
31 1000 2097152 65536
32 1000 2097152 65536
33 1000 2097152 65536
34 1000 2097152 65536
35 1000 2097152 65536
36 1000 2097152 65536
37 1000 2097152 65536
38 1000 2097152 65536