洛谷P1093 奖学金

https://www.luogu.org/problem/P1093

#include <bits/stdc++.h>
using namespace std;
struct Node{     
    int nb,yu,shu,yin,sum;  //分别为学号,语文,数学,英语,总成绩
}node[500];     
int cmp(Node x,Node y){
    if(x.sum!=y.sum)return x.sum>y.sum;    //如果总分不同,总分高的在前 
    else if(x.sum==y.sum&&x.yu!=y.yu)return x.yu>y.yu;    //如果总分相同但语文成绩不同,语文成绩高的在前 
    else return x.nb<y.nb;   //都相同,学号小的在前 
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        node[i].nb=i;   
        cin>>node[i].yu>>node[i].shu>>node[i].yin;    
        node[i].sum=node[i].yu+node[i].shu+node[i].yin;    
    }
    sort(node+1,node+n+1,cmp);    
    for(int i=1;i<=5;i++)   
        cout<<node[i].nb<<" "<<node[i].sum<<endl;   
    return 0;
}

 

posted @ 2019-10-21 01:19  晴屿  阅读(193)  评论(0编辑  收藏  举报