結果
問題 | No.2674 k-Walk on Bipartite |
ユーザー | hiro1729 |
提出日時 | 2024-03-15 22:39:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 453 ms / 2,000 ms |
コード長 | 881 bytes |
コンパイル時間 | 385 ms |
コンパイル使用メモリ | 82,268 KB |
実行使用メモリ | 98,368 KB |
最終ジャッジ日時 | 2024-09-30 02:07:14 |
合計ジャッジ時間 | 7,362 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
from collections import deque N, M = map(int, input().split()) s, t, k = map(int, input().split()) s -= 1 t -= 1 g = [[] for _ in range(N)] for _ in range(M): u, v = map(int, input().split()) u -= 1 v -= 1 g[u].append(v) g[v].append(u) d = [10 ** 9] * N d[s] = 0 q = deque([s]) while q: u = q.popleft() for v in g[u]: if d[u] + 1 < d[v]: d[v] = d[u] + 1 q.append(v) if d[t] < 10 ** 9: if N == 1: print("No") elif N == 2: if d[t] == 0: # s == t if d[1 - t] == 1: if k % 2 == 0: print("Yes") else: print("No") else: if k % 2 == 0: print("Unknown") else: print("No") else: # s != t print("Yes" if k % 2 == 1 else "No") elif d[t] % 2 == k % 2: print("Yes" if d[t] <= k else "Unknown") else: print("No") else: if N == 2 and g[s] == [] and g[t] == [] and k % 2 == 0: print("No") else: print("Unknown")