题263.2022分队天梯赛训练-7-24 纸牌排序 (10 分)
一、题目
二、题解
#include <bits/stdc++.h>
using namespace std;
map<string,int> order;
struct Card
{
string name;
int num;
};
bool mycmp(struct Card c1,struct Card c2)
{
if(c1.num!=c2.num)
{
return c1.num>c2.num;
}
else
{
return order[c1.name]<order[c2.name];
}
}
int main()
{
order["spade"]=1;order["heart"]=2;
order["club"]=3;order["diamond"]=4;
int T;
cin>>T;
getchar();
while(T--)
{
string input;
getline(cin,input);
stringstream ssin(input);
string unit;
vector<Card> cards;
while(ssin>>unit)
{
struct Card C;
C.name=unit;
ssin>>unit;
C.num=stoi(unit);
cards.push_back(C);
}
stable_sort(cards.begin(),cards.end(),mycmp);
for(int i=0;i<cards.size();i++)
{
if(i>0)
{
putchar(' ');
}
cout<<cards[i].name<<" "<<cards[i].num;
}
putchar('\n');
}
}