描述
有编号从1到N的N辆火车等待进入车站,而车站的容量是有限的,需要对火车进行调度。
只有两种调度指令,进站和出站。
现在车站给出了M个指令,请你输出在完成这些调度指令后,车站中驶出火车编号。
输入
两行
第一行两个整数,N和M
第二行为M个为-1或者为1的整数,-1代表出站,1代表入站
输出
一行整数,为驶出车站的火车编号
样例输入
3 3
1 -1 1
样例输出
注意:火车为先进后出;
#include <iostream>
#define maxs 1000
using namespace std;
class zhan{
int date[maxs];
int top;
public:
zhan();
void Enq(int x);
int Outq();
int Empty();
};
zhan::zhan(){
top=-1;
}
void zhan::Enq(int x){
date[++top]=x;
}
int zhan::Empty(){
return top;
}
int zhan::Outq(){
return date[top--];
}
int main()
{
int n,m;
cin>>n>>m;
int count1=1;
zhan p1;
for(int i=0;i<m;i++){
int a;
cin>>a;
if(a==1){
p1.Enq(count1++);
}
if(a==-1){
if(p1.Empty()!=-1){
cout<<p1.Outq()<<" ";
}
}
}
}