結果
問題 | No.267 トランプソート |
ユーザー |
![]() |
提出日時 | 2021-05-06 23:18:30 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 14 ms / 1,000 ms |
コード長 | 1,058 bytes |
コンパイル時間 | 2,365 ms |
コンパイル使用メモリ | 205,444 KB |
最終ジャッジ日時 | 2025-01-21 07:48:23 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
//https://ncode.syosetu.com/n4830bu/267/ #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; vector<string> V(N); for (auto&& x : V) { cin >> x; } auto maine = [](string s) { int ret = 0; if (s[0] == 'D') ret = 0; else if (s[0] == 'C') ret = 100; else if (s[0] == 'H') ret = 200; else if (s[0] == 'S') ret = 300; else assert(false); if (isdigit(s[1])) ret += s[1] - '0'; else if (s[1] == 'A') ret += 1; else if (s[1] == 'T') ret += 10; else if (s[1] == 'J') ret += 11; else if (s[1] == 'Q') ret += 12; else if (s[1] == 'K') ret += 13; else assert(false); return ret; }; sort(V.begin(), V.end(), [&](string x, string y) { return maine(x) < maine(y); }); for (int i = 0; i < N; i++) { cout << V[i] << " \n"[i == N - 1]; } }