Problem B: 队列的基本操作
[Creator : ]
Description
队列是一种基本的数据结构。队列具有两种基本操作方式,push 和 pop。push 会将一个值会将其压入队列队尾,而 pop 将会从队列队头弹出。现在我们就来验证一下队列的使用。
Input
首先输入整数 $t$($1 \leq t \leq 10$),代表测试的组数,以后是 $t$ 组输入。
对于每组测试数据,第一行输入两个正整数 $m$($1 \leq m \leq 100$)、$n$($1 \leq n \leq 1000$),其中 $m$ 代表当前队列的最大长度,$n$ 代表本组测试下面要输入的操作数。
而后的 $n$ 行,每行的第一个字符可能是 'P’ 或者 'O’ 或者 'A’;如果是 'P’,后面还会跟着一个整数,表示把这个数据写入队尾;如果是 'O’,表示队尾元素出队;如果是 'A',表示询问当前队列头部的值。
我们保证所有队列中的数据绝对值不会超过 $10^9$。
对于每组测试数据,第一行输入两个正整数 $m$($1 \leq m \leq 100$)、$n$($1 \leq n \leq 1000$),其中 $m$ 代表当前队列的最大长度,$n$ 代表本组测试下面要输入的操作数。
而后的 $n$ 行,每行的第一个字符可能是 'P’ 或者 'O’ 或者 'A’;如果是 'P’,后面还会跟着一个整数,表示把这个数据写入队尾;如果是 'O’,表示队尾元素出队;如果是 'A',表示询问当前队列头部的值。
我们保证所有队列中的数据绝对值不会超过 $10^9$。
Output
对于每组测试数据,根据其中的命令字符来处理队列;
(1)对所有的 'P' 操作,如果队列满输出 'F',否则完成入队操作;
(2)对所有的 'A' 操作,如果队列空,则输出 'E',否则输出当时队头的值;
(3)对所有的 'O' 操作,如果队列空,则输出 'E',否则输出队列头部元素的值,并让其出队;
每个输出占据一行,每组测试数据(最后一组除外)完成后,输出一个空行。
(1)对所有的 'P' 操作,如果队列满输出 'F',否则完成入队操作;
(2)对所有的 'A' 操作,如果队列空,则输出 'E',否则输出当时队头的值;
(3)对所有的 'O' 操作,如果队列空,则输出 'E',否则输出队列头部元素的值,并让其出队;
每个输出占据一行,每组测试数据(最后一组除外)完成后,输出一个空行。
Sample 1 Input
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
Sample 1 Output
E
9
9
F
9
6
3
1
3