一道模拟题~~可以用STL的双向队列来解决~~~
#include<iostream>
#include<deque>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
deque<int>Q;
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) Q.push_back(i);
deque<int>::iterator iter;
char ch[5];
for(int i=0;i!=m;++i)
{
scanf("%s",ch);
if(ch[0]=='T')
{
int a;
scanf("%d",&a);
for(iter=Q.begin();iter!=Q.end();++iter)
if(*iter==a) {Q.erase(iter);Q.push_front(a);break;}
}
else if(ch[0]=='N')
{
int a=*(Q.begin());
printf("%d\n",a);
Q.pop_front();
Q.push_back(a);
}
}
}return 0;
}