結果
| 問題 |
No.2121 帰属関係と充足可能性
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 16:36:17 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,498 bytes |
| コンパイル時間 | 312 ms |
| コンパイル使用メモリ | 82,020 KB |
| 実行使用メモリ | 117,652 KB |
| 最終ジャッジ日時 | 2025-06-12 16:36:26 |
| 合計ジャッジ時間 | 4,295 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 TLE * 1 -- * 42 |
ソースコード
import sys
from itertools import combinations
def generate_v(n):
if n == 0:
return [frozenset()]
vs = []
current = frozenset()
vs.append(current)
for i in range(1, n+1):
prev = vs[i-1]
elements = list(prev)
k = len(elements)
subsets = []
for r in range(k+1):
for comb in combinations(elements, r):
subset = frozenset(comb)
subsets.append(subset)
current = frozenset(subsets)
vs.append(current)
return vs
def main():
input = sys.stdin.read().split()
N = int(input[0])
A = list(map(int, input[1:7]))
A0, A1, A2, A3, A4, A5 = A
if N == 0:
print("NO")
return
try:
vs = generate_v(N)
V_N = vs[N]
except:
print("NO")
return
for m0 in V_N:
for m1 in V_N:
for m2 in V_N:
ma0 = [m0, m1, m2][A0]
ma1 = [m0, m1, m2][A1]
ma2 = [m0, m1, m2][A2]
ma3 = [m0, m1, m2][A3]
ma4 = [m0, m1, m2][A4]
ma5 = [m0, m1, m2][A5]
cond1 = ma0.issubset(ma1)
cond2 = ma1 in ma2
cond3 = ma3 in ma2
cond4 = ma4 in ma2
cond5 = ma5 in ma0
if cond1 and cond2 and cond3 and cond4 and cond5:
print("YES")
return
print("NO")
if __name__ == "__main__":
main()
gew1fw