Team Queue
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
队列和优先级队列是大多数计算机科学家都知道的数据结构。 然而,尽管团队队列在日常生活中经常发生,但它并不为人所知。 例如,在午餐时间,门萨餐厅前的队列是团队队列。
在团队队列中,每个元素都属于一个团队。 如果一个元素进入队列,它首先从头到尾搜索队列,检查它的一些队友(同一团队的元素)是否已经在队列中。 如果是,它就在它们后面进入队列。 如果不是,它就进入队列的尾部,成为新的最后一个元素(运气不好)。 退出队列的过程与正常队列一样:按照元素在团队队列中出现的顺序从头到尾地处理它们。
您的任务是编写一个模拟这种团队队列的程序。
输入格式
输入将包含一个或多个测试用例。 每个测试用例从团队数量t (1<=t<=1000)开始。 接下来是对团队的描述,每一个描述都由属于团队的元素数量和元素本身组成。。 元素是范围为0 - 999999的整数。 一个团队可能由多达1000个元素组成。
最后,下面是一个命令列表。 有三种不同的命令:
ENQUEUE x 将元素x输入到团队队列中 DEQUEUE -处理第一个元素并将其从队列中删除 STOP—测试用例的结束
对于t,输入将以0值结束。
警告:一个测试用例可能包含多达200000(20万个)命令,因此团队队列的实现应该是高效的:元素的查询和退出队列都应该只需要恒定的时间。
输出格式
对于每个测试用例,首先打印一行“Scenario #k”,其中k是测试用例的编号。 然后,对于每个DEQUEUE命令,打印在单行上退出队列的元素。 在每个测试用例之后打印一个空行,即使是在最后一个测试用例之后。
input
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
output
Scenario #1
101
102
103
201
202
203
Scenario #2
259001
259002
259003
259004
259005
260001
3月9日周六8:10
- Status
- Done
- Rule
- ACM/ICPC
- Problem
- 11
- Start at
- 2024-3-9 8:00
- End at
- 2024-3-13 12:00
- Duration
- 100 hour(s)
- Host
- Partic.
- 0