結果
| 問題 | No.3694 犬猿の仲 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-09 22:05:23 |
| 言語 | Python3 (3.14.7 + numpy 2.5.2 + scipy 1.18.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 622 ms / 2,000 ms |
| + 459µs | |
| コード長 | 770 bytes |
| 記録 | |
| コンパイル時間 | 60 ms |
| コンパイル使用メモリ | 15,104 KB |
| 実行使用メモリ | 79,936 KB |
| 最終ジャッジ日時 | 2026-09-09 22:05:39 |
| 合計ジャッジ時間 | 3,849 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 11 |
ソースコード
from collections import deque
from collections import defaultdict
N, M = list(map(int, input().split()))
G = defaultdict(set)
color = [0 for i in range(N + 1)]
for _ in range(M):
A, B = map(int, input().split())
G[A].add(B)
G[B].add(A)
color[1] = 1
que = deque([1]) # 始点を追加
ans = "Yes"
while len(que):
p = que.pop() # 直近で追加したグラフの頂点を取得
for q in list(G[p]): # 結合しているグラフの頂点を参照
if color[q] == 0: # 塗られていないなら別の色で塗る
color[q] = -color[p]
que.append(q)
elif color[q] == color[p]: # 同じ色だったら2部グラフではないと返し終了させる
ans = "No"
break
print(ans)