#include <iostream>
#include <cstdio>
#include <queue>
#include<algorithm>
#include<stack>
#include<deque>
using namespace std;
int main()
{
int n,m;
int casei=1;
while(~scanf("%d%d",&n,&m)&&(n||m))
{
char ch;
deque<int> de;
printf("Case %d:\n",casei++);
for(int i=1;i<=n&&i<=1000;i++) //这儿必须小于1000,因为指令数最多只有1000,而一次只能服务一人。所以最多也就1000人。
de.push_back(i);
while(m--)
{
scanf(" %c",&ch);
if(ch=='N')
{
printf("%d\n",de.front());
de.push_back(de.front());
de.pop_front();
}
if(ch=='E')
{
int a;
scanf("%d",&a);
de.erase(remove(de.begin(),de.end(),a),de.end()); //对于序列容器采用这种办法删除序列里面的元素最有效。
// de.erase(find(de.begin(),de.end(),a)); //这样写也对。
de.push_front(a);
}
}
}
return 0;
}
UVA 12207(双端队列)
最新推荐文章于 2023-01-10 11:03:58 发布