#include <iostream>
using namespace std;
//正常升序
void bubble_sort01(int* score,string* name,int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(score[j]>score[j+1]){
swap(score[j],score[j+1]);
swap(name[j],name[j+1]);
}
}
}
}
//降序
void bubble_sort02(int* score,string* name,int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(score[j]<score[j+1]){
swap(score[j],score[j+1]);
swap(name[j],name[j+1]);
}
}
}
}
string names[1005];
int score[1005];
int main() {
int n, f;
while (cin >> n >> f) { // 注意 while 处理多个 case
for(int k=0;k<n;k++){
cin>>names[k]>>score[k];
}
if(f){
bubble_sort01(score,names,n);
}else {
bubble_sort02(score,names,n);
}
for(int i=0;i<n;i++){
cout<<names[i]<<" "<<score[i]<<endl;
}
}
}
// 64 位输出请用 printf("%lld")
冒泡是稳定排序,用两个冒泡,一个升序,一个降序,完美解决;

京公网安备 11010502036488号