結果
問題 | No.2674 k-Walk on Bipartite |
ユーザー |
![]() |
提出日時 | 2024-10-26 18:35:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 482 ms / 2,000 ms |
コード長 | 1,381 bytes |
コンパイル時間 | 540 ms |
コンパイル使用メモリ | 82,308 KB |
実行使用メモリ | 98,300 KB |
最終ジャッジ日時 | 2024-10-26 18:36:07 |
合計ジャッジ時間 | 8,027 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
from collections import dequeN, M = map(int, input().split())s, t, k = map(int, input().split())s, t = s-1, t-1G = [[] for _ in range(N)]for _ in range(M):A, B = map(int, input().split())G[A-1].append(B-1)G[B-1].append(A-1)if N == 1:exit(print("No"))elif N == 2:if s == t:if k%2 == 0:if M == 1:print("Yes")else:print("Unknown")else:print("No")else:if k%2 == 0:print("No")else:if M == 1:print("Yes")else:print("Unknown")exit()visited = [-1]*Nvisited[s] = 0que = deque()que.append(s)same = Falsewhile que:n = que.popleft()if n == t:same = Truefor v in G[n]:if visited[v] == -1:visited[v] = visited[n]^1que.append(v)if same:if visited[t]%2 == k%2:visited = [-1]*Nvisited[s] = 0que = deque()que.append(s)while que:n = que.popleft()for v in G[n]:if visited[v] == -1:visited[v] = visited[n]+1que.append(v)if visited[t] <= k:print("Yes")else:print("Unknown")else:print("No")else:print("Unknown")