結果
| 問題 |
No.548 国士無双
|
| コンテスト | |
| ユーザー |
@abcde
|
| 提出日時 | 2019-02-24 11:51:00 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,591 bytes |
| コンパイル時間 | 1,420 ms |
| コンパイル使用メモリ | 163,368 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-17 14:55:41 |
| 合計ジャッジ時間 | 2,242 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
// 1. 入力情報取得.
string S;
cin >> S;
// 2. Sに1文字加えて, 問題文の条件を満たすように出来るか?
string str = "abcdefghijklm";
// 2-1. 問題文の条件を満たす文字列の配列を作成.
string judgment[13];
for(int i = 0; i < 13; i++){
judgment[i] = str + str[i];
sort(judgment[i].begin(), judgment[i].end());
}
// 2-2. 入力文字列 S に 1文字加えて, 2-1. の 配列 と 照合.
int counter = 0;
for(int i = 0; i < 13; i++){
char c = str[i];
// 2-1. 入力文字列 S に 1文字加え, 昇順sort.
string X = S + c;
sort(X.begin(), X.end());
// 2-2. 比較対象文字列 の 配列 と 照合.
for(int j = 0; j < 13; j++){
// 文字列X, Y を比較し, 等しければ, 追加した文字(c)を出力.
if(X == judgment[j]){
cout << c << endl;
// cout << "X=" << X << " judgment=" << judgment[j] << " c=" << c << endl;
// ex.
// [入力値]
// abcdfghijklmm
// -> X=abcdefghijklmm judgment=abcdefghijklmm c=e のように照合される.
counter++;
break;
}
}
}
// 3. 終了.
// if(counter == 0) cout << -1 << endl;
// -> Sample_2.txt 等 の WAになったので修正.
if(counter == 0) cout << "Impossible" << endl;
return 0;
}
@abcde