题解 | 结构体优先队列

结构体优先队列

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

#include<bits/stdc++.h>
using namespace std;

struct node{
    int chinese, math, english, sum;
};

bool operator<(node a, node b){
    // TODO: 实现比较逻辑,按照总分、语文、数学、英语的优先级排序
   if(a.sum!=b.sum) return a.sum<b.sum;
   if(a.chinese!=b.chinese) return a.chinese<b.chinese;
   if(a.math!=b.math) return a.math<b.math;
   return a.english<b.english;
}

priority_queue<node> s;
void insertValue(int chinese, int math, int english){
    // TODO: 实现插入操作
    node stu;
    stu.chinese=chinese;
    stu.math=math;
    stu.english=english;
    stu.sum=chinese+math+english;
    s.push(stu);
    return;
}

void deleteValue(){
    // TODO: 实现删除操作
    s.pop();
    return ;
}

node getTop(){
    // TODO: 返回成绩最好的学生
    return s.top();
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int q,op;
    int x, y, z;
    cin>>q;
    while(q--){
        cin>>op;
        if(op==1){
            cin>>x>>y>>z;
            insertValue(x, y, z);
        }
        if(op==2){
            node tmp = getTop();
            cout<<tmp.chinese<<" "<<tmp.math<<" "<<tmp.english<<endl;
        }
        if(op==3){
           deleteValue();
        }
    }
    return 0;
}

全部评论

相关推荐

Morpheus_:同 好奇什么题() 不过我一面确实是不想要直说了 xs
腾讯求职进展汇总
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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