这个题就是使用双端队列就ok了...

其实可以手写个双端队列,貌似有点困难

主要注意的就是题目只要输入两个数,而且前一个数压根没有用

#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
deque<int> q;
int n,m,c;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>c;
        if(c==1)
        {
            int a;
            cin>>a;
            q.push_front(a);
        }
        else if(c==2)
        {
            q.pop_front();
        }
        else if(c==3)
        {
            int a;
            cin>>a;
            q.push_back(a);
        }
        else if(c==4)
        {
            q.pop_back();
        }
        else if(c==5)
        {
            reverse(q.begin(),q.end());
        }
        else if(c==6)
        {
            cout<<q.size()<<endl;
            for(auto i=q.begin();i<q.end();i++)
                cout<<*i<<' ';
            cout<<endl;
        }
        else if(c==7)
        {
            sort(q.begin(),q.end());
        }
    }
    return 0;
}