include
include
include
include
using namespace std;
struct Node{
string name;
int score;
int index;
Node(string ns, int s, int i){
name=ns;
score=s;
index=i;
} };
bool cmpG(Node &a,Node & b){
return a.score != b.score ? a.score > b.score : a.index < b.index;
}
bool cmpL(Node &a,Node & b){
return a.score != b.score ? a.score < b.score : a.index < b.index;
}
int main(){
string str;
vector<string> input;
vector<Node> vec;
while(getline(cin,str)){
input.push_back(str);
}
int n;
int flag;
for(int i=0;i<input.size();i=i+2+n){
n=stoi(input[i]);
flag=stoi(input[i+1]);
for(int j=i+2;j<i+2+n;j++){
str=input[j];
int i=str.find(' ');
string name = str.substr(0,i);
int score = stoi(str.substr(i+1));
Node node(name,score,j);
vec.push_back(node);
}
if(flag==1)
sort(vec.begin(),vec.end(),cmpL);
else
sort(vec.begin(),vec.end(),cmpG);
for(int i=0;i<vec.size();i++){
Node node=vec[i];
cout<<node.name<<" "<<node.score<<endl;
}
vec.clear();
}
return 0;}



京公网安备 11010502036488号