結果
| 問題 | No.2373 wa, wo, n | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2023-10-13 18:07:25 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                RE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 2,265 bytes | 
| コンパイル時間 | 198 ms | 
| コンパイル使用メモリ | 12,928 KB | 
| 実行使用メモリ | 11,520 KB | 
| 最終ジャッジ日時 | 2024-09-15 13:58:31 | 
| 合計ジャッジ時間 | 3,959 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 RE * 1 | 
| other | AC * 38 RE * 1 | 
ソースコード
from collections import Counter
from re import compile
import sys
def printe(*args, end="\n"):
    print(*args, end=end, file=sys.stderr)
def main():
    N = int(input())
    S = input()
    ctr = Counter(S)
    if len(S) > ctr["w"] + ctr["a"] + ctr["o"] + ctr["n"] + ctr["?"]:
        print("No")
        printe(S[idx - 10:idx + 10])
        return
    idx = 0
    while idx < N:
        if idx == N - 1:
            if S[idx] in ("?", "n"):
                print("Yes")
            else:
                print("No")
                printe(S[idx - 10:idx + 10])
            return
        if idx == N - 2:
            if S[idx] == "w":
                if S[idx + 1] in ("a", "o", "?"):
                    print("Yes")
                else:
                    print("No")
                    printe(S[idx - 10:idx + 10])
                return
            if S[idx] in ("a", "o"):
                print("No")
                printe(S[idx - 10:idx + 10])
                return
            if S[idx] == "n":
                if S[idx + 1] in ("n", "?"):
                    print("Yes")
                else:
                    print("No")
                    printe(S[idx - 10:idx + 10])
                return
            if S[idx] == "?":
                if S[idx + 1] == "w":
                    print("No")
                    printe(S[idx - 10:idx + 10])
                else:
                    print("Yes")
                return
        l_1, l_2, l_3 = S[idx:idx + 3]
        if l_1 in ("a", "o"):
            print("No")
            printe(S[idx - 10:idx + 10])
            return
        if l_1 == "n":
            idx += 1
            continue
        if l_1 == "w":
            if l_2 in ("a", "o", "?"):
                idx += 2
                continue
            print("No")
            printe(S[idx - 10:idx + 10])
            return
        if l_1 == "?":
            if l_2 == "w":
                idx += 1
                continue
            if l_2 != "?":
                idx += 2
                continue
            if l_3 == "w":
                idx += 2
                continue
            if l_3 in ("a", "o", "n"):
                idx += 3
                continue
            idx += 1
if __name__ == "__main__":
    main()
            
            
            
        