結果
| 問題 |
No.2121 帰属関係と充足可能性
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 13:31:36 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,513 bytes |
| コンパイル時間 | 320 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 65,024 KB |
| 最終ジャッジ日時 | 2025-06-12 13:38:42 |
| 合計ジャッジ時間 | 4,382 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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()
gew1fw