1464: 【入门】叫号软件(1489)

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:45 解决:19

题目描述

课代表SW由于工作失误被扣了奖学金,所以他不得不去某家饭店打工,饭店很火爆,经常没有位置,所以不得不叫号。
他管理叫号软件,一天他不小心把叫号软件的程序删除了,他感觉他完蛋了, 正准备跑路,善良的你不忍心他丢工作你能帮他重新写一个叫号软件吗?
软件有三个指令:
END为结束程序
PUSH NAME 为新来了一个名字叫做NAME的人排队,NAME的长度小于等于10,且NAME没有重复。
POP为如果有人在排队则输出当前队列中来的最早的人的名字并将其从队列里删除,如果队列没有人输出“EMPTY”(没有引号)

输入

只有一组测试数据
但是输入可能有若干行(保证不超过100000),每行一个命令:
PUSH NAME(NAME没有空格)
POP
END
其中,END命令只会在最后一行出现,并且保证有END
输入END命令后立刻结束程序

输出

针对每个POP命令输出一行,如果有人在排队则输出当前队列中来的最早的人的名字并将其从队列里删除 否则 输出“EMPTY”(没有引号)

样例输入 复制

PUSH LZX
PUSH CQW
POP
PUSH SW
POP
POP
POP
END

样例输出 复制

LZX
CQW
SW
EMPTY

提示

#include<bits/stdc++.h>
using namespace std;
queue<string> q;
int main(){
	string opt,name;
    while(cin>>opt) {
    	if(opt=="END") break;
    	if (opt=="PUSH") {
    		cin>>name;
    		q.push(name);
		}else if (opt=="POP") {
			if (q.empty()) 
			    cout<<"EMPTY"<<endl;
			else {
				cout<<q.front()<<endl;
				q.pop();
			}
		}
	}
	return 0;
}