Day2(昨天放草稿箱忘发了今天补上)
题目描述
CLZ 银行只有两个接待窗口,VIP 窗口和普通窗口,VIP 用户进入 VIP 窗口排队,剩下的进入普通窗口排队。现有 M 次操作,操作有四种类型,如下:
IN name V:表示一名叫 name 的用户到 VIP 窗口排队
OUT V:表示 VIP 窗口队尾的用户离开排队
IN name N:表示一名叫 name 的用户到普通窗口排队
OUT N:表示普通窗口队尾的用户离开排队
求 M 次操作结束后 VIP 窗口队列和普通窗口队列中的姓名。
输入描述
第一行是一个整数 M(1≤M≤1000),表示一共有 M 次操作。
第二行到第 M+1 行输入操作,格式如下:
IN name V
OUT V
IN name N
OUT N
输出描述
输出 M 次操作后 VIP 窗口队列和普通窗口队列中的姓名(从头到尾),先输出 VIP窗口队列后输出普通窗口队列。
输入输出样例
示例 1
输入
5
IN xiaoming N
IN Adel V
IN laozhao N
OUT N
IN CLZ V
输出
Adel
CLZ
laozhao
运行限制
最大运行时间:1s
最大运行内存: 128M
讲道理开始有点没看懂
但是仔细一想其实就是排队,FIFO(First In First Out),就很简单。(但我不会写)
这个好像只有队列满足这种要求。
队列的逻辑结构
队列:只允许在一端进行插入操作,而另一端进行删除操作的线性表。
空队列:不含任何数据元素的队列。
允许插入(也称入队、进队)的一端称为队尾,允许删除(也称出队)的一端称为队头。
队列的操作特性:先进先出(FIFO),后入后出(LILO)。
队列要设置指针,头尾两个指针,一个可移动一个不可以动。当头尾指针相等时说明队列为空。然后是入队,出队函数(FIFO原则),最后通过函数得到队列首位的数据。
#include <iostream>
using name