7090 - Team Queue   

Description

Queues 與 Priority Queues 是大家都知道的資料結構,然而 Team Queue卻不是這麼廣為人知,但是他在日常生活中卻常常出現,像是午餐時段排在 Mensa前面的人群就是一個Team Queue

在一個Team Queue中每個元素都屬於一個隊伍,如果一個元素要進入Team Queue時,他會先從頭到尾搜索Team Queue,如果看到他的隊友已經在裡面了,那他就會排到他的隊友後面(插隊);如果沒有隊友在裡面,他就會排到Team Queue最後面,並成為隊伍的最後一個元素(運氣差)。把元素從Team Queue拿出來時就像普通的Queue一樣,會照順序從Team Queue的最前面到最後面

你的任務就是模擬這個Team Queue

Input

輸入將包含多組測資,每組測資第一個數字是team的數量t(1<=t<=1000)
接下來T行就是這些Team,每行最前面的數字是這個Team的人數,接下來就是這個Team的成員

Team的成員範圍0-999999,一個Team最多有1000個成員

最後,接下來會有一些指令,下面是三種指令
ENQUEUE x - 將元素x丟進Team Queue
DEQUEUE - 將Team Queue 最前面的元素移除掉並且印出來
STOP - 結束這組測資

警告:測試資料可能多達20萬筆,所以要更有效率的去處理你的程式。
ENQUEUE與DEQUQUE照理說只需要常數時間

Input結尾會有個0

Output

對於每組測資,首先先印出"Scenario #k",其中k是測試用的數量。然後,每個DEQUEUE指令都要印出你移除掉的元素。
在每組測資後面(包括最後一組)都要多印一個空白行

Sample Input  Download

Sample Output  Download

Tags




Discuss