看病要排队这个是地球人都知道的常识。
不过经过细心的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. Markdown中如何让# * >等符号原样显示,不转义解析成对应Markdown语法

    加\转义: * markdown 中如果遇到有字符与原有语法冲突, 可以使用反引号"`"包裹需要转移的内容. * 反引号位于键盘左上角Esc下面的位置 示例: # * > 原 ...

  3. 记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况

    SELECT @date := DATE_ADD(@date, INTERVAL + 1 DAY) days FROM ( SELECT @date := DATE_ADD("2019-06 ...

  4. centos7.9重启后,主机名会变为IP地址

    现象: centos7.9重启后,主机名会变为IP地址 当关闭DHCP功能,则主机名修改生效,否则重启后,主机名依旧变为图示的IP地址 解决方法:经过排查,由 /etc/sysconfig/netwo ...

  5. 部分jdk网盘链接

    链接:https://pan.baidu.com/s/1Nw84qVRL3Buarh2LY1lWEg 提取码:6q2z 含 6u45 7u80 8u202 11.0.X 的win及linux版 没有网 ...

  6. unity task

    https://blog.csdn.net/weixin_43405845/article/details/105028291

  7. Java 04-基础 数据类型转换 自动类型转换+强制类型转换

    1.数据类型自动转换 规则1:如果一个操作数为double型,则整个表达式提示至double型 规则2:满足自动类型转换条件,   两种类型要兼容,数值类型(整数和浮点)相互兼容   目标类型取值大于 ...

  8. js时间戳转换

    第一个参数传时间戳,第二个连接符可以看你的心情,我喜欢'-' formatDate(value, spe = '/') { value = value * 1000 //10位数时间戳要乘1000 1 ...

  9. rn项目下载@ant-design/react-native时发生冲突

    rn项目,使用npm i @ant-design/react-native下载antd. 下载依赖时报错: 如果你也遇到这个问题,直接告诉你结论,那就是最新的@ant-design/react-nat ...

  10. CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

    1.npm install -g increase-memory-limit 2.increase-memory-limit 3.重启解决