小明排队
大家好,欢迎来到STL系列课堂,我是隔壁老王,时刻准备更新博客!!!
题目描述
一天小明去排队买电影票,然后她发现队伍已经有了n个人,分别为a1,a2…an。小明不想排队,于是她开始观察这条队伍m秒, 每秒仅有1个人来排队或者排在最后的那个人不耐烦走了,如果在这一秒内两者都没有发生那么小明就想知道队伍还有没有人。
输入
第一行有两个整数n(n≤1000),m(m≤10000)。第二行有n个整数ai(ai≤100000)表示排在第i位是人是ai。接下来m行,每行有一个整数p(p≤3),当p=1时则当前行还存在另一个整数x(x≤100000)表示x来排队;当p=2时则表示排在最后的那个人不耐烦走了;当p=3时小明想知道队伍还有没有人。
输出
若干行,每一行表示队伍还有没有人,没有人输出YES,有输出排在最后的人是谁。
样例输入
3 8
1 2 3
1 4
3
2
3
2
2
2
3
样例输出
4
3
YES
这道题使用STL中的队列(queue)来解决,队列就像你排队似的。第一个人做完了,离开队伍(出队),第二个人就继续变成第一个人,如果外面的人想跟着做,就要排在队伍后面。(入队)first in first out(先进先出)也是队列的别名,简称FIFO
queue的常用成员函数:
1. queue<int>a; //定义一个队列成员为int类型的a
2. a.top(); //返回队首元素(不出队)
3. a.push(x); //将x入队
4. a.pop(); //队首元素出队