题目

看病要排队这个是地球人都知道的常识。
不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。

现在就请你帮助医院模拟这个看病过程。

Input

输入数据包含多组测试,请处理到文件结束。
每组数据第一行有一个正整数N(0<N<2000)表示发生事件的数目。
接下来有N行分别表示发生的事件。
一共有两种事件:
1:“IN A B”,表示有一个拥有优先级B的病人要求医生A诊治。(0<A<=3,0<B<=10)
2:“OUT A”,表示医生A进行了一次诊治,诊治完毕后,病人出院。(0<A<=3)

Output

对于每个"OUT A"事件,请在一行里面输出被诊治人的编号ID。如果该事件时无病人需要诊治,则输出"EMPTY"。
诊治人的编号ID的定义为:在一组测试中,"IN A B"事件发生第K次时,进来的病人ID即为K。从1开始编号。

Sample Input

7
IN 1 1
IN 1 2
OUT 1
OUT 2
IN 2 1
OUT 2
OUT 1
2
IN 1 1
OUT 1

Sample Output

2
EMPTY
3
1
1

思路

定义一个优先队列然后模拟

代码

#include"bits/stdc++.h"
using namespace std;
struct sq{//记录一下病人的idint num ,id;
};
bool operator<(const sq &x, const sq &y){//重载小于号,适用于优先队列的排序规则if(x.num==y.num)return x.id>y.id;elsereturn x.num<y.num;
}
int main(){int n;while(cin>>n){int d, k=1;priority_queue<sq>s[4];while(n--){string a;sq custom;cin>>a>>d;if(a=="IN"){custom.id=k++;cin>>custom.num;s[d].push(custom);}else if(a=="OUT"){if(s[d].empty())cout<<"EMPTY"<<endl;else {custom=s[d].top();s[d].pop();cout<<custom.id<<endl;}}}}}

看病要排队 HDU - 1873 题解相关推荐

  1. Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队

    目录 优先队列和PriorityQueue HDU 1873:看病要排队 java.util.Comparator 优先队列和PriorityQueue java.util.PriorityQueue ...

  2. HDU 1873 - 看病要排队 ← 优先队列

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=1873 [问题描述] 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医 ...

  3. 【HDU 1873 --- 看病要排队】优先队列

    [HDU 1873 --- 看病要排队]优先队列 Description 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医 ...

  4. HDU 1873 看病要排队(结构体+优先队列)

    题目: Problem Description 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病. ...

  5. 【HDU - 1873】 看病要排队(优先队列)

    题干: 看病要排队这个是地球人都知道的常识.  不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能根据简单 ...

  6. hdu 1873 看病要排队

    看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. HDU - 1873 看病要排队(优先队列)

    看病要排队 #include<iostream> #include<queue> using namespace std; struct node {int x;//优先级 i ...

  8. 杭电1873题 看病要排队

    题目链接~~> 这题是接触优先队列的第二题代码有点... 开始做时一直wa,最后才明白应该把 priority_queue<zha>q1; 等放到循环里面去,... 代码: #inc ...

  9. hdu 1872(看病要排队)(优先队列)

    看病要排队 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

最新文章

  1. spring in action 4 第5章
  2. 小程序里的自定义组件:组件的外部样式externalClasses的使用
  3. oracle11g sp 1503,Oracle11g操作ASM权限问题
  4. [转]easyui datagrid 批量编辑和提交
  5. java myeclipse The type java.lang.CharSequence cannot be resolved. It is indirectly referen
  6. php图片抖动,css3,jquery_css3图片抖动,css3,jquery - phpStudy
  7. ASP.NET MVC 个人学习笔记之 Controller传值
  8. flask框架基本使用(2)(响应与重定向)
  9. 不借助任何变量进行变量交换
  10. Ponemon Institute告诉你,大数据正在勾搭网络安全
  11. 用python画圣诞树-使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
  12. Asp.net MVC 自定义路由
  13. paip.FTP服务架设选型
  14. 全网最详细教程(上):教你如何从0-1制作出一张可视化大屏
  15. WinCC界面中通过插件打开pdf文件
  16. 微生物组-宏基因组分析专题研讨会(2022.8)
  17. 少儿编程scratch课程-海底世界
  18. 360安全云盘大升级:扔掉U盘 不限制上传下载速度
  19. linux安装i219网卡驱动下载,Linux redhat 6.5 安装网卡I219-LM 驱动
  20. English语法_程度副词-Very / Much

热门文章

  1. 一个介绍机顶盒、DVB、TS、SI的系统网站,简洁深刻
  2. 市场热门护照识别性能测评对比
  3. item_get - 获得EBAY商品详情
  4. 股票入门基础知识36:三烛台模式——三个白武士和三只乌鸦
  5. 软件自动化测试基本流程(附流程图)
  6. 《因果科学周刊》第5期:OOD 泛化
  7. 双子座性格最精确的解析
  8. IOS数据存储5种方式
  9. php古诗代码,今日诗词开放接口 - 今日诗词 - 诗词实时智能推荐
  10. 计划任务计算机怎么进入,怎么在win10系统的电脑中将计划任务打开