首页 > 编程语言 >南沙C++信奥老师解一本通题 1371:看病

南沙C++信奥老师解一本通题 1371:看病

时间:2024-09-16 17:23:41浏览次数:1  
标签:优先级 看病 level int pop 1371 通题 push 信奥

 【题目描述】

有个朋友在医院工作,想请BSNY帮忙做个登记系统。具体是这样的,最近来医院看病的人越来越多了,因此很多人要排队,只有当空闲时放一批病人看病。但医院的排队不同其他排队,因为多数情况下,需要病情严重的人优先看病,所以希望BSNY设计系统时,以病情的严重情况作为优先级,判断接下来谁可以去看病。

【输入】

第一行输入n,表示有n个操作。

对于每个操作,首先输入pushpop

push的情况,之后会输入aiai 和 bibi,分别表示患者姓名和患者病情优先级。

pop后面没有输入,但需要你输出。

【输出】

对于pop的操作,输出此时还在排队人中,优先级最大的患者姓名和优先级。

表示他可以进去看病了。

如果此时没人在排队,那么输出”none”,具体可见样例。

【输入样例】

7
pop
push bob 3
push tom 5
push ella 1
pop
push zkw 4
pop

【输出样例】

none
tom 5
zkw 4

【提示】

【数据规模和约定】

1≤n≤100000,每个人的优先级都不一样,0≤优先级≤2000000000。

姓名都是小写字母组成的,长度小于20。

#include <bits/stdc++.h>
using namespace std;
struct Person
{
	char name[20];
	int level;
	bool operator< (const Person &b ) const
	{
		return b.level>level;
	}
};
int main()
{
	priority_queue<Person> pq;
	int n,level;
	char op[20];
	cin>>n;
	for(int i=1;i<=n;i++)   //所有的都要换成格式化输入输出,否则有一个不通过 
	{
		scanf("%s", op);
	 	if(strcmp(op, "push") != 0)
		{
		   if(pq.empty())
		   		printf("none\n");//cout<<"none"<<endl;
            else
            {
            	Person cur=pq.top();
            	pq.pop();
            	printf("%s %d\n",cur.name,cur.level);  //cout<<cur.name<<" "<<cur.level<<endl;
			}
		}else  //push操作 
		{
			Person newnode;
			scanf("%s%d",&newnode.name,&newnode.level);
			pq.push(newnode);
		}
	}
	return 0;
}

 

标签:优先级,看病,level,int,pop,1371,通题,push,信奥
From: https://www.cnblogs.com/nanshaquxinaosai/p/18416461

相关文章

  • 南沙C++信奥老师解一本通题:2110:【例5.1】素数环
    ​【题目描述】输入正整数n,把整数1,2,…,n 组成一个环,使得相邻两个整数之和均为素数。【输入】输入正整数n。【输出】输出任意一个满足条件的环。【输入样例】6【输出样例】432561【提示】数据满足:4≤n≤30#include<bits/stdc++.h>usingnamespace......
  • 南沙C++信奥老师解一本通题 1228:书架
    ​ 【题目描述】John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。John共有NN头奶牛(1≤N≤20,000),每头奶牛有自己的高度Hi(1≤Hi≤10,000),N头奶牛的总高度为S。书架高度为B(1≤B≤S<2,000,000,007)。为了到达书架顶层,奶牛可以踩着其他奶牛的......
  • 打卡信奥刷题(761)用Scratch图形化工具信奥P5713[普及组/提高组] 【深基3.例5】洛谷团队
    【深基3.例5】洛谷团队系统题目描述在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间555分钟;而在洛谷团队中上......
  • 南沙C++信奥老师解一本通题: 1161:转进制
    ​ 题目描述】用递归算法将一个十进制数X转换成任意进制数M(M≤16)。【输入】一行两个数,第一个十进制数X,第二个为进制M。【输出】输出结果。【输入样例】3116{将十进制31转化为十六进制数}【输出样例】1F#include<iostream>usingnamespacestd;intx,m;void......
  • 南沙C++信奥老师解一本通题: 1361:产生数(Produce)
    ​ [题目描述】给出一个整数n(n≤2000)和k个变换规则(k≤15)。规则:①1个数字可以变换成另1个数字;②规则中,右边的数字不能为零。例如:n=234,k=2规则为2→53→6上面的整数234经过变换后可能产生出的整数为(包括原数)234,534,264,564共4种不同的产生数。求经过任意次的变换(0次......
  • 南沙C++noip老师解一本通题: 1360:奇怪的电梯(lift)
    ​【题目描述】大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)上有一个数字Ki(0≤=Ki≤=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4......
  • 南沙C++信奥老师解一本通题: 1212:LETTERS
    ​ 题目描述】给出一个row×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。【输入】第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。接着输出R行S列字母矩阵。【输出】最多能走过的不同字母......
  • 南沙C++信奥老师解一本通题: 1315:【例4.5】集合的划分
    ​ 【题目描述】【输入】给出n和k。【输出】n个元素a1,a2,……,an放入k个无标号盒子中去的划分数S(n,k)。【输入样例】106 【输出样例】22827 #include<iostream>usingnamespacestd;longlongSplit(intn,intplate)//等同于n个不同的数......
  • 南沙C++信奥老师解一本通题:1203:扩号匹配问题
    ​【题目描述】在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标......
  • 信奥一本通题陈老师解题:1209:分数求和
    ​【题目描述】【输入】第一行是一个整数nn,表示分数个数,1≤n≤101≤n≤10;接下来nn行,每行一个分数,用"p/qp/q"的形式表示,不含空格,p,qp,q均不超过1010。【输出】输出只有一行,即最终结果的最简形式。若为分数,用"p/qp/q"的形式表示。【输入样例】21/21/3【输出样例】5/......