結果
問題 |
No.2121 帰属関係と充足可能性
|
ユーザー |
![]() |
提出日時 | 2025-06-12 13:27:49 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,513 bytes |
コンパイル時間 | 171 ms |
コンパイル使用メモリ | 82,376 KB |
実行使用メモリ | 107,496 KB |
最終ジャッジ日時 | 2025-06-12 13:33:28 |
合計ジャッジ時間 | 4,109 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 5 TLE * 1 -- * 43 |
ソースコード
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()