#include<bits/stdc++.h>
using namespace std;
int f(char z[5])
{
if(strcmp(z,"Add")==0)
return 0;
else if(strcmp(z,"Del")==0)
return 1;
else if(strcmp(z,"Out")==0)
return 2;
}
void refresh(int n,int m)
{
queue<long long int>Q;
stack<long long int>S;
int flag=1;
while(m--)
{
char a[5];
scanf("%s",a);
if(f(a)==0)///Add
{
long long int num;
scanf("%lld",&num);
if(S.size()<n)
S.push(num);
else
Q.push(num);
}
else if(f(a)==1)///Del
{
if(S.empty())
flag=0;
else
{
S.pop();
if(!Q.empty())
{
long long int t=Q.front();
Q.pop();
S.push(t);
}
}
}
else if(f(a)==2)///Out
{
if(Q.empty())
flag=0;
else
Q.pop();
}
}
if(!flag)
printf("Error\n");
else
while(!S.empty())
{
printf("%lld\n",S.top());
S.pop();
}
}
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
refresh(n,m);
}
SDUT2088refresh的停车场
最新推荐文章于 2017-04-12 00:44:41 发布
本文介绍了一个使用C++实现的程序,该程序通过队列和栈来模拟一系列操作,包括添加元素(Add)、删除元素(Del)和移除队列首部元素(Out)。程序确保栈的大小不超过给定限制,并在必要时从队列中补充元素。
943

被折叠的 条评论
为什么被折叠?



