STL练习-看病要排队
不过经过细心的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练习-看病要排队的更多相关文章
- 看病要排队(stl)
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- hdu 1872(看病要排队)(优先队列)
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 1873 看病要排队
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1873 看病要排队 Description 看病要排队这个是地球人都知道的常识.不过经过细心的0068的 ...
- hdoj 1873 看病要排队【优先队列】
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu1873 看病要排队【优先队列】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873 看病要排队 Time Limit: 3000/1000 MS (Java/Others) ...
- G - 看病要排队
看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能根据简单的先来先服 ...
- HDU 1873 看病要排队 优先队列
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...
- hdu1837 看病要排队(优先队列)
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu1873 看病要排队 优先队列
看病要排队 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- hdu1873 看病要排队(结构体优先队列)
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
随机推荐
- python代码规范PEP8
1.引言 本文档给出了 Python 编码规约,主要 Python 发行版中的标准库即遵守该规约.对于 C 代码风格的 Python 程序,请参阅配套的 C 代码风格指南. 本文档和 PEP 257( ...
- 空间数据格式(地理数据格式):GeoJSON(FeatureCollection)与EsriJSON(FeatureSet/ArcGIS格式)
一.FeatureCollection(GeoJSON)格式介绍 https://learn.microsoft.com/en-us/javascript/api/azure-maps-control ...
- SVN创建自己的版本库
1.创建版本库 第一:新建文件夹 第二:将新建文件与SVN建立关联(创建版本库) 直接选择OK 点击确定后文件夹图标也换了 该下的信息就是用来协助我们存储数据的(不是数据) 2.获取SVN库中的数据并 ...
- 实践:基于腾讯云播放器SDK,带您体验播放多场景下的 COS 视频文件
一. 实践步骤 1. 准备您的 腾讯云COS 视频文件链接,您需要: 1.1 创建一个存储桶: 1.2 上传对象: 1.3 在对象信息详情里复制对象地址: 注意: 目前腾讯云有COS特惠活动,新人1元 ...
- Jemter 压测基础(一)
Jemter 压测基础(一) 1.压力测试的基本概念: 1.吞吐率(Requestspersecond) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...
- 记SpringBoot中 Consider defining a bean of type 'com.xxx.classname' in your configuration 错误的解决办法
一.背景 笔者项目中.有两个子模块代码.需要分别在不同的包名中运行,假设一个包名为 cn.com.a,另一个包名为cn.com.b.由于启动类只加了@SpringBootApplication注解,所 ...
- Java流程控制练习
练习 打印三角形及Debug的使用 public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for(in ...
- IntelliJ IDEA 生成serialVersionUID
1.设置Settings-->Editor->Inspections 2.实现Serializble
- 腾讯云服务器,在本地域名不能访问,IP可以访问;端口访问差异:有的地方能访问有的不能
本地域名不能访问原因是DNS地址问题,本地设置的DNS地址没法解析出腾讯云IP,所以域名访问不到,直接就用服务器IP却可以. 修改DNS可以在本地电脑上修改,只影响本机, 按下键盘上的"Wi ...
- Docker安装 Redis Stack(开发适配-提供 Redis Stack 服务器和RedisInsight可视化) (6.2.4-v2版本)
一.使用docker安装(开发适配-提供 Redis Stack 服务器和RedisInsight) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版T ...