题解 | #成绩排序#
成绩排序
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;
}
网易游戏公司福利 637人发布