看病要排队
Time Limit: 3000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 23809 Accepted Submission(s): 9970

Problem Description
看病要排队这个是地球人都知道的常识。
不过经过细心的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<iostream>
#include<queue>
#include<functional>
#include<string>
using namespace std;
struct patient{int x,y;bool operator<(const patient &a)const{if(y!=a.y)return y<a.y;return x>a.x;}
};
int main()
{int N;
//  freopen("data.txt","r",stdin);while(~scanf("%d",&N)){getchar();priority_queue<patient> q[4];struct patient ps[N+1];int k=1;while(N--){string str;cin>>str;getchar();if(str=="IN"){int d;ps[k].x=k;cin>>d>>ps[k].y;q[d].push(ps[k]);k++;}else {int d;cin>>d;if(q[d].empty()){printf("EMPTY\n");}else{patient p=q[d].top();printf("%d\n",p.x);q[d].pop();}}}}return 0;
}

hdu 1873 看病要排队相关推荐

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

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

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

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

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

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

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

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

  5. 【优先队列】HDU 1873——看病找医生

    来源:点击打开链接 看路径记录的BFS之前,再看一遍优先队列的用法. 优先队列的排序规则可以用运算符重载的方式完成,通常意义下,应该用friend bool operator <进行重载. #i ...

  6. 杭电1873题 看病要排队

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

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

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

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

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

  9. 看病要排队 HDU - 1873 题解

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

最新文章

  1. 数据库基础笔记(MySQL)6 —— 基础事务
  2. 关于c语言的fib的程序总结,C语言程序设计试卷及答案
  3. 【Java基础】异常处理与输入输出流
  4. C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常
  5. CodeChef Cards, bags and coins [DP 泛型背包]
  6. PhantomJS快速入门教程(转)
  7. containers文件夹可以删除吗_电脑进行C盘清理,appdata文件夹可以删除吗?
  8. acquireSharedInterruptibly
  9. angular大型项目实践总结的几个要点
  10. C++术语 【from C++ Primer 第1章 快速入门】
  11. Codeforces Round #383 (Div. 1): D. Arpa’s letter-marked tree…(dsu on tree+状压)
  12. 关于Java IO流学习总结
  13. python利器的使用-python开发利器之ulipad的使用实践
  14. VMware ESXi 7.0 SLIC 2.5 macOS Unlocker LegacyCPU MOD iso 百度网盘 下载
  15. 机器学习与数学基础知识(二)
  16. linux的进程rl,linux 进程 rl是什么状态
  17. R语言ETL系列:创建字段(mutate)
  18. Fama三因子和Carhat 四因子的介绍和计算
  19. 通过ip查看主机名 通过主机名查看ip
  20. DPDK 编译安装(meson ninja)

热门文章

  1. RSA加密算法-非对称加密算法的使用
  2. 四面深信服(长沙)软件测试工程师10k,大概是长沙双休犯法吧笑
  3. IEEP-OSPF域内路由故障-现象与排障思路
  4. (谷歌)Chrome浏览器添加扩展程序白名单
  5. 终于稀里糊涂完成了模仿天猫整站ssm
  6. Windows 7系统tracert怎么用?
  7. Hdu 4090 GemAnd Prince (搜索_2010年北京区域赛)
  8. 关于SD卡原理图和实际封装区别的探索
  9. 对京东商品评论进行词频统计并制作词云
  10. 去中心化社交网络协议除了Nostr还有哪些?