#P3501. 队列的基本操作

    ID: 5323 传统题 1000ms 256MiB 尝试: 8 已通过: 8 难度: 3 上传者: 标签>数据结构队列模拟入门结构体分支结构

队列的基本操作

题目描述

队列是一种基本的数据结构。队列具有两种基本操作方式:push 和 pop。push 会将一个值压入队列队尾,而 pop 将会从队列队头弹出。现在我们就来验证一下队列的使用。

输入格式

首先输入整数 tt,代表测试的组数,之后是 tt 组输入。

对于每组测试数据,第一行输入两个正整数 mmnn,其中 mm 代表当前队列的最大长度,nn 代表本组测试下面要输入的操作数。

而后的 nn 行,每行的第一个字符可能是 POA

  • 如果是 P,后面还会跟着一个整数,表示把这个数据写入队尾;
  • 如果是 O,表示队头元素出队,但是出队之前要先输出一下队头元素;
  • 如果是 A,表示询问当前队列头部的值。

我们保证所有队列中的数据绝对值不会超过 10910^9

输出格式

对于每组测试数据,根据其中的命令字符来处理队列:

  • 对所有的 P 操作,如果队列满输出 F,否则完成入队操作;
  • 对所有的 A 操作,如果队列空,则输出 E,否则输出当时队头的值;
  • 对所有的 O 操作,如果队列空,则输出 E,否则输出队列头部元素的值,并让其出队。

每个输出占据一行。每组测试数据(最后一组除外)完成后,输出一个空行。

样例

2
5 12
A
P 9
A
P 6
P 3
P 10
P 8
A
P 2
O
O
O
2 5
P 1
P 3
O
P 5
A
E
9
9
F
9
6
3

1
3

样例解释

第一组测试数据中,初始队列为空,执行 A 输出 E。然后执行 P 9 入队,再执行 A 输出队头 9。依此类推。

数据范围

  • 1t101 \le t \le 10
  • 1m1001 \le m \le 100
  • 1n10001 \le n \le 1000
  • 队列中数据的绝对值不超过 10910^9