清华-成绩排序
题目:
输入学生个数n,排序方式op,0代表降序,1代表升序,下面n行每行输入一个学生姓名和学生成绩,要求稳定排序后输出。
输入样例:
3 0 fang 90 yang 50 ning 70
输出样例:
fang 90 ning 70 yang 50
code:
#include<bits/stdc++.h>
using namespace std;
#define maxn 10010
int id[maxn],sc[maxn];
string name[maxn];
bool cmp0(int i,int j){
return sc[i]>sc[j];
}
bool cmp1(int i,int j){
return sc[i]<sc[j];
}
int main(){
int n,op;
while(cin>>n>>op){
for(int i=0;i<n;i++){
id[i]=i;
cin>>name[i]>>sc[i];
}
if(op==1){
stable_sort(id,id+n,cmp1);
}else{
stable_sort(id,id+n,cmp0);
}
for(int i=0;i<n;i++){
cout<<name[id[i]]<<' '<<sc[id[i]]<<endl;
}
}
return 0;
}
她神采风扬,那双眼眸里仿佛放着万里山河风光!

浙公网安备 33010602011771号