#acwing3375#sort应用#升降序可选

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
struct student{
    char name[100];
    int score;
    int rank;
};
bool compare0(student lhs,student rhs){
    if(lhs.score>rhs.score) return true;
    if(lhs.score==rhs.score&&lhs.rank<rhs.rank) return true;
    else return false;
}
bool compare1(student lhs,student rhs){
    if(lhs.score<rhs.score) return true;
    if(lhs.score==rhs.score&&lhs.rank<rhs.rank) return true;
    else return false;
}
int main(){
    int N,i;
    scanf("%d",&N);
    scanf("%d",&i);
    vector<student> vec(N); 
    for(int j=0;j<N;j++){
        scanf("%s %d",vec[j].name,&vec[j].score);
        vec[j].rank=j;
    }
    if(i==0){            //降序
        sort(vec.begin(),vec.end(),compare0);
        }                
    else {               //升序
        sort(vec.begin(),vec.end(),compare1);
    }
    for(int n=0;n<N;n++){
        printf("%s %d\n",vec[n].name,vec[n].score);
    }
    return 0;
}

全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务