这个题就是使用双端队列就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;
}