sicily--1482. 奖学金

来源:互联网 发布:石家庄淘宝摄影工作室 编辑:程序博客网 时间:2024/05/29 21:32

1.用优先级队列模拟即可

#include<iostream>#include<queue>using namespace std;struct Node{int snum;//学号int chinese;int math;int english;int sum;//总分};struct cmp{bool operator()(Node n1, Node n2){if(n1.sum != n2.sum){return n1.sum < n2.sum;}else{if(n1.chinese != n2.chinese)//总分相同,比较语文成绩{return n1.chinese < n2.chinese;}else{return n1.snum > n2.snum;//小学号的优先}}}};int main(){int num;bool flag = false;while(cin >> num){if(flag)cout << endl;flag = true;priority_queue<Node, vector<Node>, cmp> Q;for(int i = 1; i <= num; i++){Node n;cin >> n.chinese;cin >> n.math;cin >> n.english;n.snum = i;//学号n.sum = n.chinese + n.math + n.english;Q.push(n);}for(int i = 1; i <= 5; i++){cout << Q.top().snum << " " << Q.top().sum << endl;Q.pop();}}return 0;}


原创粉丝点击