题目描述
一个任务调度器不断接收两类操作:
1 p:新增一个优先级为 的任务。任务按添加顺序编号:第 1 个添加的任务序号为 ,第 2 个为 ,依此类推;2:执行优先级最高的任务并输出它的序号;若多个任务优先级相同,先添加的先执行。
用一个大根堆维护所有待执行任务,让每次「选最高」都快。数据保证每条 2 执行时至少有一个待执行任务。
输入格式
第一行一个整数 (),操作数。
接下来 行,每行是一条操作,格式为 1 p()或 2。
输出格式
对每条 2 操作,输出一行一个整数:被执行任务的序号。
样例
输入:
6
1 7
1 7
2
1 7
2
2
输出:
1
2
3
三个任务优先级都是 7,执行顺序全由添加顺序决定:1 号、2 号、3 号。
数据范围
,。提示:堆里只能放一个数,就把「优先级」和「先来后到」编进同一个 long long——高位放 ,低位放一个随序号增大而减小的量,同优先级时先添加的反而更大。