deque & 双端队列
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
。
常用函数
q.push_back(value) 将 value 添加到队列的末尾。
q.push_front(value) 将 value 添加到队列的首部。
q.pop_back() 弹出队列最后一个元素。
q.pop_front() 弹出队列第一个元素。
q.size() 返回队列中元素的数量。
注意: 包含 #include <queue>。
#include <iostream>
#include <queue>
using namespace std;
deque<int> q;
int main()
{
    int n;
    cin >> n;
     
    for(int i = 0; i < n; ++ i)
    {
        int op, t;
        cin >> op;
        if(op == 1)
        {
            cin >> t;
            q.push_back(t);
        }
        else if(op == 2)
        {
            cin >> t;
            q.push_front(t);
        }
        else if(op == 3)
        {
            q.pop_back();
        }
        else
        {
            q.pop_front();
        }
    }
    for(int i = 0; i < q.size(); ++ i) cout << q[i] << ' ';
    return 0;
}
输入格式
第 行,为一个正整数 。
接下来 行,每行一个正整数 。
若 为 则接着输入一个整数 , 并将其 入队。
若 为 , 则接着输入一个整数 , 并将其 入队。
若 为 ,则弹出队列最后一个元素。
若 为 ,则弹出队列第一个元素。
数据保证 为 或 时队列不为空。
输出格式
共一行,输出操作后的 。
数据范围
输入样例:
3
1 2
2 1
4
输出样例:
2