結果
| 問題 | 
                            No.2283 Prohibit Three Consecutive
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2023-04-28 23:02:22 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,073 bytes | 
| コンパイル時間 | 131 ms | 
| コンパイル使用メモリ | 81,880 KB | 
| 実行使用メモリ | 139,892 KB | 
| 最終ジャッジ日時 | 2024-11-17 21:58:24 | 
| 合計ジャッジ時間 | 1,866 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 2 WA * 11 | 
ソースコード
import sys
from collections import deque, Counter
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 63 - 1
mod = 998244353
def solve():
    n = ii()
    s = [-1 if v == '?' else int(v) for v in input()]
    p = []
    for i in range(n):
        if s[i] == -1:
            p.append(i)
    p = list(set(p[:3] + p[-3:]))
    m = len(p)
    for bit in range(1 << m):
        a = s[::]
        for i in range(m):
            if 1 & (bit >> i):
                a[p[i]] = 1
            else:
                a[p[i]] = 0
        f = False
        for i in range(2, n):
            if a[i] == -1 and (a[i - 1] == 1 and a[i - 2] == 1):
                a[i] = 0
            else:
                a[i] = 1
            if a[i-2] == a[i-1] == a[i]:
                f = True
                break 
        if f or a[-1] == a[0] == a[1] or a[-2] == a[-1] == a[0]:
            pass
        else:
            print('Yes')
            return
    print('No')
for _ in range(ii()):
    solve()