結果
| 問題 |
No.267 トランプソート
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-10-20 19:10:53 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 1,749 bytes |
| コンパイル時間 | 518 ms |
| コンパイル使用メモリ | 66,600 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-19 02:42:30 |
| 合計ジャッジ時間 | 1,523 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 |
ソースコード
#include <iostream>
using namespace std;
struct s {
int mark, number;
};
void encode(char tmp1, char tmp2, s *card) {
if (tmp1 == 'D') card->mark = 1;
else if (tmp1 == 'C') card->mark = 2;
else if (tmp1 == 'H') card->mark = 3;
else card->mark = 4;
if (tmp2 == 'A') card->number = 1;
else if (tmp2 == 'T') card->number = 10;
else if (tmp2 == 'J') card->number = 11;
else if (tmp2 == 'Q') card->number = 12;
else if (tmp2 == 'K') card->number = 13;
else card->number = tmp2 - '0';
}
void decode(char *tmp1, char *tmp2, s card) {
if (card.mark == 1) *tmp1 = 'D';
else if (card.mark == 2) *tmp1 = 'C';
else if (card.mark == 3) *tmp1 = 'H';
else *tmp1 = 'S';
if (card.number == 1) *tmp2 = 'A';
else if (card.number == 10) *tmp2 = 'T';
else if (card.number == 11) *tmp2 = 'J';
else if (card.number == 12) *tmp2 = 'Q';
else if (card.number == 13) *tmp2 = 'K';
else *tmp2 = card.number + '0';
}
void insertionSort_mark(int N, s card[]) {
int j;
s tmp;
for (int i = 1; i < N; ++i) {
tmp = card[i];
for (j = i - 1; j >= 0 && card[j].mark > tmp.mark; --j) card[j + 1] = card[j];
card[j + 1] = tmp;
}
}
void insertionSort_number(int N, s card[]) {
int j;
s tmp;
for (int i = 1; i < N; ++i) {
tmp = card[i];
for (j = i - 1; j >= 0 && card[j].number > tmp.number; --j) card[j + 1] = card[j];
card[j + 1] = tmp;
}
}
int main() {
char tmp1, tmp2;
int N;
s card[52];
cin >> N;
for (int i = 0; i < N; ++i) {
cin >> tmp1 >> tmp2;
encode(tmp1, tmp2, &card[i]);
}
insertionSort_number(N, card);
insertionSort_mark(N, card);
for (int i = 0; i < N; ++i) {
decode(&tmp1, &tmp2, card[i]);
if (i > 0) cout << " ";
cout << tmp1 << tmp2;
}
}