队列中的最大值
时间限制:1秒 内存限制:256M
【问题描述】
假设有这样一个拥有3个操作的队列:
1、EnQueue(\(v\)):将 \(v\) 加入队列中\((-2 * 10^9 ≤ v ≤ 2 * 10^9)\)
2、DeQueue:删除队列中的队首元素并返回此元素
3、MaxElement:返回队列中的最大元素
请设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能的低。
【输入格式】
第一行是一个整数 \(n\) ,表示有 \(n\) 个操作。接下来的 \(n\) 行,每行表示一条操作。
【输出格式】
针对输入中的 DeQueue 和 MaxElement 操作,如果操作成功,输出对应的操作结果,否则不输出任何内容!
【输入输出样例1】
Input
10
EnQueue 5
EnQueue 10
MaxElement
EnQueue 8
DelQueue
EnQueue 6
DelQueue
MaxElement
DelQueue
MaxElement
Output
10
5
10
8
8
6
【数据限制】
对于 \(100\%\) 的数据有:\(1 ≤ n ≤ 1 000 000\)
【来源】
Mr.he