寶石奇兵是一個簡單的動作遊戲,主要是打敗遊戲中的敵人與收集關卡中的各式寶石,因為遊戲的場景細緻,並且容易上手,所以吸引了不少玩家。為了增加遊戲的樂趣,遊戲公司新增了線上排名的功能,透過連上網路將自己的紀錄上傳,就能夠加入排名。每個紀錄包含玩家名稱、分數、以及過關時間,為了讓玩家能夠快速知道其他排名的分數和時間,遊戲公司提供了一項查詢功能,能夠查到所有第 k 名的紀錄。排名的規則如下:如果紀錄 A 的分數比紀錄 B 還要高,則 A 的排名較高;如果兩者分數一樣的話,則過關時間較少的紀錄排名較高;如果分數和時間都一樣,則並列同一名。
|
名次 |
玩家名稱 |
分數 |
過關時間 |
|
1 |
hanazawa |
1989 |
225 |
|
1 |
kana |
1989 |
225 |
|
2 |
yamato |
1900 |
300 |
|
3 |
kate |
1900 |
600 |
|
3 |
amethyste |
1900 |
600 |
|
4 |
george |
1900 |
650 |
|
5 |
manticore |
1850 |
215 |
表一
例如:表一是從第 1 名到第 5 名的紀錄。如果查詢第 4 名,則顯示 george 的紀錄;如果查詢第 3 名,會顯示 kate 和 amethyste 的紀錄。假設目前有 N 筆紀錄以任意順序排列,並且需要查詢 M 個名次,請你寫一個程式模擬這個功能。
第一行是一個整數 T (T £ 20),接下來有 T 組測試資料。
每組測試資料的第一行是兩個正整數 N (N £ 10,000) 和 M (M £ 10,000),接下來 N 行代表 N 筆紀錄,每筆紀錄包含玩家名稱、分數和通關時間,玩家名稱最多由 20 個小寫英文字母所組成,分數和時間是小於 1,000,000,000 的非負整數。之後有 M 行,表示有 M 個查詢,每一行只有一個數字 k (k > 0),表示要查詢第 k 名的紀錄。
一共有 T 組輸出。每組的第一行輸出 “Record Set #C”,代表第 C 組測試資料,之後對每個查詢輸出兩個部分,第一部分是分數和過關時間,兩個數以一個空白隔開,輸出在同一行,第二部分是所有第 k 名的玩家名稱,每個名稱各占一行,並且以字典排序的順序輸出。
你可以假設第 k 名一定存在。