看病要排队这个是地球人都知道的常识。
不过经过细心的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
 1 #include<iostream>
2 #include<vector>
3 #include<stdio.h>
4 using namespace std;
5 //没有用优先队列
6 typedef struct people
7 {
8 int num;//编号
9 int priority;//优先级
10 }people;
11 int main()
12 {
13 vector<people>t[3];
14
15 int n;
16 while(scanf("%d",&n)!=EOF)
17 {
18 for(int i=0;i<3;i++)
19 t[i].clear();
20 string event;
21 int a,b,num=1;
22 while(n--)
23 {
24 cin>>event;
25 if(event=="IN")
26 {
27 people p;
28 cin>>a>>b;
29 p.num=num;num++;
30 p.priority=b;
31 t[a-1].push_back(p);
32 }
33 else if(event=="OUT")
34 {
35 vector<people>::iterator it;
36 cin>>a;//医生编号
37 if(t[a-1].empty()){cout<<"EMPTY"<<endl;continue;}
38 int max_p=-1;
39 it=t[a-1].begin();
40 vector<people>::iterator it2;
41 for(it=t[a-1].begin();it!=t[a-1].end();it++)
42 {
43 if((*it).priority>max_p)
44 {
45 max_p=(*it).priority;
46 it2=it;//记录最大优先级的位置
47 }
48 }
49 cout<<(*it2).num<<endl;
50 t[a-1].erase(it2);
51 }
52 }
53 }
54 return 0;
55 }

STL练习-看病要排队的更多相关文章

  1. 看病要排队(stl)

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

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

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

  3. hdu 1873 看病要排队

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1873 看病要排队 Description 看病要排队这个是地球人都知道的常识.不过经过细心的0068的 ...

  4. hdoj 1873 看病要排队【优先队列】

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

  5. hdu1873 看病要排队【优先队列】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873 看病要排队 Time Limit: 3000/1000 MS (Java/Others)     ...

  6. G - 看病要排队

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

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

    Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  8. hdu1837 看病要排队(优先队列)

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

  9. hdu1873 看病要排队 优先队列

    看病要排队 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  10. hdu1873 看病要排队(结构体优先队列)

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

随机推荐

  1. 【阿里云ACP】-03(数据库RDS)

    OSS快速使用入门:创建Bucket 1.用户创建一个Bucket时,可以根据费用单价.请求来源分布.响应延迟等方面的考虑,为该bucket选择所在的数据中心 阿里云所有数据中心都提供OSS公众服务 ...

  2. YOLO v6:一个硬件友好的目标检测算法

    ​ 本文来自公众号"AI大道理"   YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用. YOLOv6支持模型训练.推理及多平台部署等全链条的工业应用需求,并在 ...

  3. 配置Centos8网络绑定

    配置Centos8网络绑定 原理: 在物理网卡两块之上创建一块虚拟主卡, 逻辑上是一主双从, 按不同的模式负载运行,常用模式如主备或并行提供双倍带宽等.模式:   可选参数"mode=act ...

  4. zookeeper 选举流程源码解析

    在开始之前,我们先了解一下zookeeper集群角色,zookeeper中存在leader,follower, observer这么几个角色, leader, follower, 就类似与mysql ...

  5. 关于git基本操作备忘

    1.将远程分支拉取到本地分支 git pull origin 分支名 2.将本地分支代码提交到远程分支 git push origin HEAD:Ft_6.8

  6. C# Linq不同类型数组之间的转换

    string[] strArray = "a,b,c,d,e,f,g".Split(new char[]{ ',' }); int[] intArray; //C# 3.0下用此句 ...

  7. redis的持久化方案RDB和AOF

    RDB:快照形式,定期把内存中当前时刻的数据保存到磁盘.Redis默认支持的持久化方案.速度快但是服务器断电的时候会丢失部分数据 AOF形式:append only file.把所有对redis数据库 ...

  8. 312. 戳气球 (Hard)

    问题描述 312. 戳气球 (Hard) 有 n 个气球,编号为 0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获 ...

  9. Oracle 临时表空间暴满的原因与解决方法

    Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序. 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,te ...

  10. 进程间通信-信号-pipe-fifo

    一.实验截图 (一)fifo (二)pipe (三)signal 二.实验代码 fifo //consumer #include <stdio.h> #include <stdlib ...