結果
問題 |
No.2674 k-Walk on Bipartite
|
ユーザー |
|
提出日時 | 2024-03-21 02:35:27 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 634 ms / 2,000 ms |
コード長 | 755 bytes |
コンパイル時間 | 371 ms |
コンパイル使用メモリ | 82,336 KB |
実行使用メモリ | 101,504 KB |
最終ジャッジ日時 | 2024-09-30 09:59:00 |
合計ジャッジ時間 | 9,443 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
n, m = map(int, input().split()) s, t, k = map(int, input().split()) s -= 1 t -= 1 adj = [[] for i in range(n)] for i in range(m): u, v = map(int, input().split()) u -= 1 v -= 1 adj[u].append(v) adj[v].append(u) dis = [1000000000 for i in range(n)] from queue import * q = Queue() q.put(s) dis[s] = 0 while not q.empty(): u = q.get() q.task_done() for v in adj[u]: if dis[v] > dis[u] + 1: dis[v] = dis[u] + 1 q.put(v) if n == 1: print("No") elif s == t: if (dis[t] + k) % 2: print("No") else: print("Yes" if adj[s] else "Unknown") elif dis[t] < 1000000000: if (dis[t] + k) % 2: print("No") elif dis[t] <= k: print("Yes") else: print("Unknown") elif k % 2: print("Unknown") else: print("No" if n == 2 else "Unknown")