题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

#include<iostream>
#include<unordered_map>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
// 64 位输出请用 printf("%lld")
typedef pair<string,float> Pair;
bool comparedown(Pair a,Pair b)
{
    return a.second>b.second;
}

bool compareup(Pair a,Pair b)
{
    return a.second<b.second;
}

int main()
{
    vector<Pair> scoretable;
    int n=0;
    int sign=1;
    cin>>n;
    cin>>sign;
    string tempstr;
    float tempscore;
    while(n--)
    {
        cin>>tempstr>>tempscore;
        scoretable.push_back(make_pair(tempstr,tempscore));
    }

    if(sign==1)
    {
        stable_sort(scoretable.begin(),scoretable.end(),compareup);//前后顺序不能变,需要稳定排序
    }
    else
    {
        stable_sort(scoretable.begin(),scoretable.end(),comparedown);
    }

    for(auto it:scoretable)
    {
        cout<<it.first<<" "<<it.second<<endl;
    }

    return 0;
}

全部评论

相关推荐

累死的一条狗:***一人顶10人那你给我发10个人的工资总和吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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