結果
問題 |
No.2565 はじめてのおつかい
|
ユーザー |
![]() |
提出日時 | 2024-10-05 17:28:33 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 671 ms / 2,000 ms |
コード長 | 767 bytes |
コンパイル時間 | 124 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 35,632 KB |
最終ジャッジ日時 | 2024-10-05 17:28:54 |
合計ジャッジ時間 | 19,382 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
N,M = map(int,input().split()) from collections import defaultdict from collections import deque graph = defaultdict(list) for i in range(M): u,v = map(int,input().split()) graph[u-1].append(v-1) INF = 10**18 ######print(graph) def bfs(start,goal): dist = [INF]*(N) dist[start] = 0 quene = deque() quene.append(start) while quene: v=quene.popleft() for i in graph[v]: if dist[i] >= dist[v]+1: dist[i] = dist[v]+1 quene.append(i) continue return dist[goal] a = bfs(0,N-1) b = bfs(0,N-2) c = bfs(N-1,0) d = bfs(N-1,N-2) e = bfs(N-2,0) f = bfs(N-2,N-1) if INF <= (a+d+e) and INF <= (b+c+f): print(-1) exit() print(min((a+d+e),(b+c+f)))