結果

問題 No.2121 帰属関係と充足可能性
ユーザー gew1fw
提出日時 2025-06-12 13:24:11
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,745 bytes
コンパイル時間 253 ms
コンパイル使用メモリ 82,364 KB
実行使用メモリ 108,040 KB
最終ジャッジ日時 2025-06-12 13:29:41
合計ジャッジ時間 4,193 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 5 TLE * 1 -- * 43
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    import sys
    N = int(sys.stdin.readline())
    A = list(map(int, sys.stdin.readline().split()))
    A0, A1, A2, A3, A4, A5 = A

    if N == 0:
        print("NO")
        return

    def generate_v(n):
        if n == 0:
            return [frozenset()]
        prev = generate_v(n-1)
        subsets = []
        from itertools import chain, combinations
        for mask in range(2 ** len(prev)):
            subset = []
            for i in range(len(prev)):
                if mask & (1 << i):
                    subset.append(prev[i])
            subsets.append(frozenset(subset))
        return subsets

    try:
        vn = generate_v(N)
    except RecursionError:
        print("YES")
        return
    except MemoryError:
        print("YES")
        return

    if N >= 5:
        print("YES")
        return

    for m0 in vn:
        for m1 in vn:
            for m2 in vn:
                xA0 = [m0, m1, m2][A0]
                xA1 = [m0, m1, m2][A1]
                xA2 = [m0, m1, m2][A2]
                xA3 = [m0, m1, m2][A3]
                xA4 = [m0, m1, m2][A4]
                xA5 = [m0, m1, m2][A5]

                cond1 = True
                for x3 in vn:
                    if x3 in xA0 and x3 not in xA1:
                        cond1 = False
                        break
                if not cond1:
                    continue

                if xA1 not in xA2:
                    continue
                if xA3 not in xA2:
                    continue
                if xA4 not in xA2:
                    continue
                if xA5 not in xA0:
                    continue

                print("YES")
                return

    print("NO")

if __name__ == "__main__":
    main()
0