結果
| 問題 |
No.267 トランプソート
|
| コンテスト | |
| ユーザー |
startcpp
|
| 提出日時 | 2015-08-21 22:48:52 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 957 bytes |
| コンパイル時間 | 616 ms |
| コンパイル使用メモリ | 63,324 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-18 11:48:34 |
| 合計ジャッジ時間 | 1,167 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n;
string s[52]; //1文字目がマーク(A~Cに変換する),2文字目が数字(A~Mに変換する)
//結局は、文字⇔インデックス変換
char mark[5] = "DCHS";
char num[14] = "A23456789TJQK";
char conv_mark(char c) {
for (int i = 0; i < 4; i++) {
if (mark[i] == c) {
return 'A' + i;
}
}
return '-';
}
char conv_num(char c) {
for (int i = 0; i < 13; i++) {
if (num[i] == c) {
return 'A' + i;
}
}
return '-';
}
char conv_inv_mark(char c) {
return mark[c - 'A'];
}
char conv_inv_num(char c) {
return num[c - 'A'];
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s[i];
s[i][0] = conv_mark(s[i][0]);
s[i][1] = conv_num(s[i][1]);
}
sort(s, s+n);
for (int i = 0; i < n; i++) {
s[i][0] = conv_inv_mark(s[i][0]);
s[i][1] = conv_inv_num(s[i][1]);
cout << s[i];
if (i != n - 1)
cout << " ";
}
return 0;
}
startcpp