题目:
12.png

分析:
1.deque就是一个两头操作的队列。
2.有头插,尾插:push_front()/push_back()。
3.有头删,尾删:pop_front()/pop_back()。
4.然后再用一些工作性算法:sort(排序),reverse(倒置)。
知道这些之后做这道题就很简单了。
源码:

include <bits/stdc++.h>

using namespace std;
const int maxn = 1e5 + 10;
char c[maxn];
deque q;
int main()
{

int n, m, x, y;
scanf("%d%d", &n, &m);
while (m--)
{
    scanf("%d", &x);
    {
        if (x == 1)
        {
            scanf("%d", &y);
            q.push_front(y);
        }
        else if (x == 2)
            q.pop_front();
        else if (x == 3)
        {
            scanf("%d", &y);
            q.push_back(y);
        }
        else if (x == 4)
            q.pop_back();
        else if (x == 5)
            reverse(q.begin(), q.end());
        else if (x == 6)
        {
            printf("%d\n", q.size());
            for (int i = 0; i < q.size(); ++i)
                printf("%d ", q[i]);
            puts("");
        }
        else
            sort(q.begin(), q.end());
    }
}

}