結果
問題 | No.2536 同値性と充足可能性 |
ユーザー |
![]() |
提出日時 | 2024-10-25 23:31:53 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 403 ms / 2,000 ms |
コード長 | 1,079 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 82,220 KB |
実行使用メモリ | 101,908 KB |
最終ジャッジ日時 | 2024-10-25 23:32:12 |
合計ジャッジ時間 | 6,460 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
from collections import deque N, M = map(int, input().split()) G = [[] for _ in range(N)] for _ in range(M): u, E, v = input().split() u, v = int(u)-1, int(v)-1 if E == "<==>": G[u].append((v, 0)) G[v].append((u, 0)) else: G[u].append((v, 1)) G[v].append((u, 1)) visited = [-1]*N ans = [] for i in range(N): if visited[i] == -1: visited[i] = 0 que = deque() que.append(i) zero = [i] one = [] while que: n = que.popleft() for v, c in G[n]: if visited[v] == -1: visited[v] = (visited[n]+c)%2 que.append(v) if visited[v] == 0: zero.append(v) else: one.append(v) elif visited[v] != (visited[n]+c)%2: exit(print("No")) if len(zero) >= len(one): ans += zero else: ans += one print("Yes") print(len(ans)) print(*[i+1 for i in sorted(ans)])