結果

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

ソースコード

diff #

import itertools

def generate_v(n):
    if n == 0:
        return [frozenset()]
    prev_v = generate_v(n-1)
    subsets = []
    for r in range(len(prev_v)+1):
        for subset in itertools.combinations(prev_v, r):
            subsets.append(frozenset(subset))
    return subsets

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

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

    vn = generate_v(N)
    ma0_idx = A0
    ma1_idx = A1
    ma2_idx = A2
    ma3_idx = A3
    ma4_idx = A4
    ma5_idx = A5

    for m0 in vn:
        for m1 in vn:
            for m2 in vn:
                ma0 = [m0, m1, m2][ma0_idx]
                ma1 = [m0, m1, m2][ma1_idx]
                valid = True
                for x3 in vn:
                    if x3 in ma0 and x3 not in ma1:
                        valid = False
                        break
                if not valid:
                    continue

                ma2 = [m0, m1, m2][ma2_idx]
                if ma1 not in ma2:
                    continue

                ma3 = [m0, m1, m2][ma3_idx]
                if ma3 not in ma2:
                    continue

                ma4 = [m0, m1, m2][ma4_idx]
                if ma4 not in ma2:
                    continue

                ma5 = [m0, m1, m2][ma5_idx]
                if ma5 not in ma0:
                    continue

                print("YES")
                return

    print("NO")

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