#223. 小组队列

小组队列

题目描述

nn 个小组要排成一个队列。当一个人来到队列时,如果队列中已有同组成员,他就直接插队到同组成员后面;否则站在队伍最后面。

模拟以下三种命令:

  • ENQUEUE x:将编号为 xx 的人插入队列
  • DEQUEUE:让队列第一个人出队
  • STOP:测试用例结束

要求入队和出队操作在常数时间内完成。

输入格式

输入包含多个测试用例。

每个测试用例:

  • 第一行:小组数量 tt
  • 接下来 tt 行:每行第一个数为小组人数,接着是该小组成员的编号
  • 然后是多行命令,直到 STOP 结束

输入以 t=0t = 0 结束

输出格式

对于每个测试用例:

  • 第一行:Scenario #kkk 为测试用例编号)
  • 接下来每个 DEQUEUE 命令输出一行:出队人的编号
  • 每个测试用例结束后输出一个空行
2
3 101 102 103
3 201 202 203
ENQUEUE 101
ENQUEUE 201
ENQUEUE 102
ENQUEUE 202
ENQUEUE 103
ENQUEUE 203
DEQUEUE
DEQUEUE
DEQUEUE
DEQUEUE
DEQUEUE
DEQUEUE
STOP
2
5 259001 259002 259003 259004 259005
6 260001 260002 260003 260004 260005 260006
ENQUEUE 259001
ENQUEUE 260001
ENQUEUE 259002
ENQUEUE 259003
ENQUEUE 259004
ENQUEUE 259005
DEQUEUE
DEQUEUE
ENQUEUE 260002
ENQUEUE 260003
DEQUEUE
DEQUEUE
DEQUEUE
DEQUEUE
STOP
0
Scenario #1
101
102
103
201
202
203

Scenario #2
259001
259002
259003
259004
259005
260001

数据规模与约定

对于全部的测试点,保证:

  • 1t10001 \leq t \leq 1000
  • 小组最多包含 10001000
  • 编号范围 00999999999999
  • 测试用例最多包含 2×1052 \times 10^5 个命令