#include<stdio.h>
#include<deque>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
deque<int>q1;
deque<int>q2;
int n;
while(~scanf("%d",&n))
{
q1.clear();
bool flag=true;
while(n--)
{
char s[103];
int m;
scanf(" %s",s);
if(s[0]=='t')
{
scanf("%d",&m);
if(flag)
q1.push_front(m);
else q1.push_back(m);
}
if(s[0]=='p')
{
scanf("%d",&m);
if(flag)
q1.push_back(m);
else q1.push_front(m);
}
if(s[0]=='f')
{
if(q1.empty())
printf("No job for Ada?\n");
else if(flag){
printf("%d\n",q1.front());
q1.pop_front();
}
else
{
printf("%d\n",q1.back());
q1.pop_back();
}
}
if(s[0]=='b')
{
if(q1.empty())
printf("No job for Ada?\n");
else if(flag){
printf("%d\n",q1.back());
q1.pop_back();
}
else {
printf("%d\n",q1.front());
q1.pop_front();
}
}
if(s[0]=='r')
{
flag=!flag;
}
}
}
}
![微笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
反转队列的时候本来想用两个队列来回导一下后来发现超时所以用flag标记
标记以后的操作全部反转、