結果
| 問題 |
No.2373 wa, wo, n
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-07-07 22:38:55 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 5 ms / 2,000 ms |
| コード長 | 1,044 bytes |
| コンパイル時間 | 4,636 ms |
| コンパイル使用メモリ | 169,792 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-21 18:52:55 |
| 合計ジャッジ時間 | 5,852 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 39 |
ソースコード
import std;
void main () {
int N = readln.chomp.to!int;
string S = readln.chomp;
solve(N, S);
}
void solve (int N, string S) {
string[] candidate = ["wa", "wo", "n"];
while (true) {
// base case
if (S.length == 0) {
break;
}
if (S[0] == '?' && S.length == 1) {
S = [];
break;
}
if (S[0] == '?' && S[1] == '?') {
S = S[1..$];
continue;
}
// search("n"は最後の手段)
bool match;
foreach (cc; candidate) {
match = true;
foreach (i; 0..cc.length) {
if (S[i] != '?' && S[i] != cc[i]) {
match = false;
break;
}
}
if (match) {
S = S[cc.length..$];
break;
}
}
if (!match) {
break;
}
}
if (S.length == 0) {
writeln("Yes");
} else {
writeln("No");
}
}