TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

66.7% (2/3)

Tags

Description

芽芽喜歡看棒球,最近學了 python 之後,想用 python 來進行棒球相關的數據分析。

當打者站上打擊區打擊時,若沒有發生特殊狀況,(如:保送、犧牲打等),則記為一個打數 (AB)
每個打數 (AB) 可能會有以下幾種結果:

名稱 縮寫 說明
一壘安打1B打者安全抵達一壘
二壘安打2B打者安全抵達二壘
三壘安打3B打者安全抵達三壘
全壘打HR打者繞壘並得分
滾地出局GO打者擊出滾地球,被守備方刺殺出局
飛球出局FO打者擊出飛球,在落地前被接殺
平飛球出局LO打者擊出低飛球,被守備方接殺
內野高飛球出局PO打者擊出高飛球,被內野手接殺
三振K打者被投手三振
野手選擇FC打者雖然安全上壘,但守備方選擇抓另一名跑者
守備失誤上壘ROE打者因守備方失誤而安全上壘


芽芽想要研究各打者的長打率 (SLG),計算方法為:

$$\text{SLG} = \frac{\text{總壘數}}{\text{打數}} = \frac{1 \times \text{1B} + 2 \times \text{2B} + 3 \times \text{3B} + 4 \times \text{HR}}{\text{AB}}$$

芽芽已經蒐集好各個打者的打數與結果,但他發現自己好像太久沒寫 python,很多內容都忘光了。請運用在資芽學到的內容,幫助芽芽找出長打率最高的三位打者。

Input Format

第一行有一個數 N ,代表共有 N 個打數。
接下來的 N 行,每行有兩個字串 s1, s2 , 代表 s1 在一個打數中達成的結果為 s2

  • 3 ≤ N ≤ 2000
  • 至少有三種不同的 s1
  • s2 為上述表格的其中一種縮寫

Output Format

輸出三行,依序為長打率前三高的打者。若長打率相同則依照名字首次出現的順序排序。

Sample Input 1

3
M.Trout FO
S.Ohtani 3B
A.Judge 1B

Sample Output 1

S.Ohtani
A.Judge
M.Trout

Sample Input 2

5
M.Trout 3B
A.Judge 2B
A.Judge GO
M.Trout FO
S.Ohtani 2B

Sample Output 2

S.Ohtani
M.Trout
A.Judge

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~4 3 ≤ N ≤ 10 ,每位打者的打數相同 (20 %) 20
2 5~9 3 ≤ N ≤ 10 (20 %) 20
3 10~14 10 ≤ N ≤ 100 (20 %) 20
4 15~19 100 ≤ N ≤ 1000 (20 %) 20
5 20~24 1000 ≤ N ≤ 2000 (20 %) 20

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 2
6 1000 65536 65536 2
7 1000 65536 65536 2
8 1000 65536 65536 2
9 1000 65536 65536 2
10 1000 65536 65536 3
11 1000 65536 65536 3
12 1000 65536 65536 3
13 1000 65536 65536 3
14 1000 65536 65536 3
15 1000 65536 65536 4
16 1000 65536 65536 4
17 1000 65536 65536 4
18 1000 65536 65536 4
19 1000 65536 65536 4
20 1000 65536 65536 5
21 1000 65536 65536 5
22 1000 65536 65536 5
23 1000 65536 65536 5
24 1000 65536 65536 5