AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2565. 银行插队

中等通过率 49% · 提交 489 · 通过 241
模拟排序队列贪心

小慕正在为一家银行设计智能排队系统。银行将客户划分为5个,1级最高,5级最低。当客户办理业务时,优先级高的客户可以随时到优先级低的客户前面。 现在,小慕需要处理一个客户到达和银行办理业务的时间序列,请你帮助他在每次银行办理业务时输出当前应该服务的客户编号。如果同时有多个优先级相同且最高的客户,则按照他们到达的先后顺序进行服务。

提示:带虚线的词点一下有通俗解释。

输入描述

输入第一行是一个正整数 n,表示输入的序列中的事件数量。(1 ≤ n ≤ 500) 接下来有 n 行,每行第一个字符为 a 或 p 。 当字符为 a 时,后面会有两个的正整数 num 和 x ,表示到来的客户编号为 num ,优先级为 x ; 当字符为 p 时,表示当前优先级最高的客户去办理业务。

输出描述

输出包含若干行,对于每个 p , 输出一行,仅包含一个正整数 num , 表示办理业务的客户编号。

示例

示例 1

输入

4
a 1 3
a 2 2
a 3 2
p

输出

2

示例 2

输入

8
a 1 3
a 2 2
a 3 2
p
a 4 3
a 5 1
a 6 2
p

输出

2
5

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
银行插队示例(样例1) 客户1 优先级3 客户2 优先级2 客户3 优先级2 客户2 客户3 客户1 队首 队尾 办理业务 p 客户2 输出:2
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「银行插队」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。