题目描述
有一个初始为空的队列,我们对这个队列进行n次操作,操作共分为2种:
-
1 x(将数字x放到队列的末尾)
-
2(将队列最前面的数字弹出队列)
对于第2种操作,你需要把弹出的这个数字输出,如果进行操作2时,队列为空,则输出"empty"。
例如:n = 5,对应的操作为:
1 123 (操作后队列里面的元素为:123)
1 234(操作后队列里面的元素为:123, 234)
2(输出:123,操作后队列里面的元素为:234)
2(输出:234,操作后队列里面的元素为:空)
2(输出:empty)
对应后面3个第2类操作,你的程序需要输出,
123
234
empty
输入格式
第一行:1个数n(1 <= n <= 10000)
后面n行:每行1种操作,1 X或者2(0 <= x <= 10000)
输出格式
对应所有操作2,输出被弹出的数或者"empty"
样例
【样例输入】
5
1 123
1 234
2
2
2
【样例输出】
123
234
empty
题解:
#include <bits/stdc++.h>
using namespace std;
queue<int> q;
int n, x, y, ans = 0;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x;
if (x == 1) {
cin >> y;
q.push(y);
} else if (x == 2) {
if (!q.empty()) {
cout << q.front() << endl;
q.pop();
} else
cout << "empty" << endl;
}
}
return 0;
}