#include #include #include typedef std::int_fast32_t s32; typedef std::uint_fast32_t u32; typedef std::int_fast64_t s64; typedef std::uint_fast64_t u64; const unsigned long mod = 1000000007; typedef std::pair Card; Card stoc(std::string str) { Card card; switch( str[0] ) { case 'D' : card.first = 0; break; case 'C' : card.first = 1; break; case 'H' : card.first = 2; break; case 'S' : card.first = 3; break; } switch( str[1] ) { case 'A' : card.second = 1; break; case '2' ... '9' : card.second = str[1] - '0'; break; case 'T' : card.second = 10; break; case 'J' : card.second = 11; break; case 'Q' : card.second = 12; break; case 'K' : card.second = 13; break; } return card; } int main() { int N; std::cin >> N; std::vector vc; std::string str; for(int i = 0; i < N; ++i) { std::cin >> str; vc.push_back(stoc(str)); } std::sort(vc.begin(), vc.end()); char type[4] = {'D', 'C', 'H', 'S'}; char num[] = {'0', 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K'}; for(int i = 0; i < N-1; ++i) { std::cout << type[vc[i].first] << num[vc[i].second] << " "; } std::cout << type[vc[N-1].first] << num[vc[N-1].second] << std::endl; return 0; }