結果
問題 |
No.2565 はじめてのおつかい
|
ユーザー |
|
提出日時 | 2024-11-15 12:46:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 245 ms / 2,000 ms |
コード長 | 893 bytes |
コンパイル時間 | 348 ms |
コンパイル使用メモリ | 82,272 KB |
実行使用メモリ | 94,080 KB |
最終ジャッジ日時 | 2024-11-15 12:47:12 |
合計ジャッジ時間 | 12,171 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
from collections import deque N,M = map(int,input().split()) G = {i:[] for i in range(1,N+1)} for _ in range(M): a,b = map(int,input().split()) G[a].append(b) INFTY = 10**5+100 dist1 = [INFTY]*(N+1) dist1[1] = 0 que = deque([1]) while que: x = que.popleft() for y in G[x]: if dist1[y]>=INFTY: dist1[y] = dist1[x]+1 que.append(y) dist2 = [INFTY]*(N+1) dist2[N-1] = 0 que = deque([N-1]) while que: x = que.popleft() for y in G[x]: if dist2[y]>=INFTY: dist2[y] = dist2[x]+1 que.append(y) dist3 = [INFTY]*(N+1) dist3[N] = 0 que = deque([N]) while que: x = que.popleft() for y in G[x]: if dist3[y]>=INFTY: dist3[y] = dist3[x]+1 que.append(y) ans = dist1[N-1]+dist2[N]+dist3[1] ans = min(ans,dist1[N]+dist3[N-1]+dist2[1]) if ans>=INFTY: print(-1) else: print(ans)