题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct record{ string name; int score; int order; }; int main() { int len; cin>>len; int sortType; cin>>sortType; vector<record> records; while(len--){ record r; cin>>r.name; cin>>r.score; r.order = len;//order更大代表更先录入 records.push_back(r); } sort(records.begin(),records.end(),[&sortType](const record& a,const record& b)->bool{ if(sortType==1){ if(a.score<b.score||(a.score==b.score&&a.order>b.order)){ return true; }else{ return false; } }else{ if(a.score>b.score||(a.score==b.score&&a.order>b.order)){ return true; }else{ return false; } } }); for(int i=0;i<records.size();i++){ const record& r = records[i]; cout<<r.name<<' '<<r.score<<endl; } } // 64 位输出请用 printf("%lld")