#include <iostream> #include <string> #include <algorithm> #include <cmath> using namespace std; typedef struct Stu{ string name; int sc; }S; bool cmp0(S s1,S s2) { return s1.sc>=s2.sc; // return s1.name>s2.name; } bool cmp1(S s1,S s2) { return s1.sc<=s2.sc; // return s1.name<s2.name; } int main() { int n,w; while(cin>>n) { cin>>w; S s[n]; // string name; // int sc; for(int i=0;i<n;i++) { cin>>s[i].name>>s[i].sc; } if(w==0) { // sort(s,s+n,cmp0); for(int i=0;i<n;i++)//冒泡排序(要求的是稳定的排序) { for(int j=0;j<n-i-1;j++) { if(s[j].sc<s[j+1].sc)swap(s[j],s[j+1]); } } } else { // sort(s,s+n,cmp1); for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { if(s[j].sc>s[j+1].sc)swap(s[j],s[j+1]); } } } for(int i=0;i<n;i++) { cout<<s[i].name<<" "<<s[i].sc<<endl; } } } // 64 位输出请用 printf("%lld")