题解 | 两端问优先队列

两端问优先队列

https://www.nowcoder.com/practice/da2887a3fd8549ad826c9cbdaa67f513

#include <iostream>
#include<set>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,op,x;
    cin>>n;
    multiset<int> se;
    while(n--){
        cin>>op;
        switch (op) {
        case 1:
        cin>>x;
        se.insert(x);
        break;
        case 2:
        if(!se.empty())
        cout<<*se.begin()<<'\n';
        break;
        case 3:
        if(!se.empty())
        cout<<*se.rbegin()<<'\n';
        break;
        case 4:
        if(!se.empty())
        se.erase(se.begin());
        break;
        case 5:
        if(!se.empty())
        se.erase(prev(se.end()));
        break;
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

09-09 16:12
已编辑
成都理工大学 Java
future0210:学java就是好啊,啥都能转
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务