蓝桥杯 1.繁忙的疗养院

#include <iostream>
#include <queue>
using namespace std;
queue<string>V,N;
int main()
{
  int m;
  string io,nv,name;
  cin>>m;
  for(int i=0;i<m;i++){
    cin>>io;
    if(io=="IN"){
      cin>>name>>nv;
      if(nv=="N"){
        N.push(name);
      }
      else{
        V.push(name);
      }
    }
    else{
      cin>>nv;
      if(nv=="N"){
        N.pop();
      }
      else{
        V.pop();
      }
    }
  }
  while(!V.empty()){
    cout<<V.front()<<endl;
    V.pop();
  }
  while(!N.empty()){
    cout<<N.front()<<endl;
    N.pop();
  }
  return 0;
}

问题

心灵之园是一家知名的精神疗养院,为了提供更优质的服务,他们专门设立了一个 VIPVIP 诊室和一个普通诊室。VIPVIP 诊室主要接待特殊需求的高级会员,而普通诊室则服务所有的普通病患。

诊室的工作人员小桥负责管理诊室的排队情况。每个病人在进行诊疗前,都需要先进行排队,而小桥的工作就是根据下列四种情况进行操作:

  • IN name V :表示一名叫 name 的病患来到了 VIPVIP 诊室排队。
  • OUT V :表示 VIP 诊室队头的病患已经完成了诊疗,离开了排队。
  • IN name N :表示一名叫 name 的病患来到了普通诊室排队。
  • OUT N :表示普通诊室队头的病患已经完成了诊疗,离开了排队。

现在给出一系列的操作,请你帮助小桥计算出在所有操作结束后,VIPVIP 诊室队列和普通诊室队列中的病患名单。

输入格式

输入的第一行是一个整数 M,表示一共有 M 次操作。

接下来的 M 行每行描述一个操作,格式如下:

  • IN name V
  • OUT V
  • IN name N
  • OUT N

输出格式

输出所有操作结束后 VIPVIP 诊室队列和普通诊室队列中的病患姓名(从头到尾)。先输出 VIPVIP 诊室队列,再输出普通诊室队列,每行一个病患姓名。

样例输入

5
IN kodgb N
IN utfuv V
OUT V
IN qlpof N
IN kvofa N

样例输出

kodgb
qlpof
kvofa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值