题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <algorithm>
#include <iostream>
#include <string>
#include<vector>
#include<stdlib.h>
using namespace std;
struct Score{
string name;
int sc;
};
bool cmp1(const Score &a,const Score &b){
return a.sc>b.sc?true:false;
}
bool cmp2(const Score &a,const Score &b){
return b.sc>a.sc?true:false;
}
int main() {
int n,m,i,y;
string x;
cin>>n>>m;
vector<Score> T(n);
for(i=0;i<n;i++){
cin>>x>>y;
T[i].name=x;
T[i].sc=y;
}
if(m==1) stable_sort(T.begin(),T.end(),cmp2);
else stable_sort(T.begin(),T.end(),cmp1);
for(i=0;i<n;i++){
cout<<T[i].name<<' '<<T[i].sc<<endl;
}
}
// 64 位输出请用 printf("%lld")
哭哭!睡觉!原来cmp要用bool不能int啊