rt
代码:
#include<bits/stdc++.h>
using namespace std;
map<char,int> mp,pok;
map<int,char> fpok;
void init(){
mp['C']=0;
mp['D']=1;
mp['S']=2;
mp['H']=3;
mp['2']=1;
mp['3']=2;
mp['4']=3;
mp['5']=4;
mp['6']=5;
mp['7']=6;
mp['8']=7;
mp['9']=8;
mp['T']=9;
mp['J']=10;
mp['Q']=11;
mp['K']=12;
mp['A']=13;
pok['S']=0;
pok['W']=1;
pok['N']=2;
pok['E']=3;
fpok[0]='S';
fpok[1]='W';
fpok[2]='N';
fpok[3]='E';
}
struct pk{
char x,y;
};
bool cmp(pk a,pk b){
if(a.x==b.x) return mp[a.y]<mp[b.y];
return mp[a.x]<mp[b.x];
}
int main(){
char C;
init();
cin>>C;
while(C!='#'){
string s,qwq;
cin>>s>>qwq;
s+=qwq;
vector<pk> vec[4];
int st=(pok[C]+1)%4;
for(int i=0;i<102;i+=2){
vec[i/2+st].push_back({s[i],s[i+1]});
}
sort(vec[0].begin(),vec[0].end(),cmp);
sort(vec[1].begin(),vec[1].end(),cmp);
sort(vec[2].begin(),vec[2].end(),cmp);
sort(vec[3].begin(),vec[3].end(),cmp);
for(int i=0;i<4;i++){
cout<<fpok[i]<<": ";
for(int j=0;j<vec[i].size()-1;j++) cout<<vec[i][j].x<<vec[i][j].y<<' ';
cout<<vec[i][vec[i].size()-1].x<<vec[i][vec[i].size()-1].y<<"\n";
}
cin>>C;
}
return 0;
}