結果
問題 |
No.3263 違法な散歩道
|
ユーザー |
![]() |
提出日時 | 2025-09-06 15:06:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 472 ms / 2,000 ms |
コード長 | 866 bytes |
コンパイル時間 | 689 ms |
コンパイル使用メモリ | 81,992 KB |
実行使用メモリ | 109,176 KB |
最終ジャッジ日時 | 2025-09-06 15:07:41 |
合計ジャッジ時間 | 9,249 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
n,m=map(int, input().split()) G = [[] for i in range(n)] for _ in range(m): a,b=map(lambda x: int(x) - 1, input().split()) G[a].append(b) G[b].append(a) k=int(input()) if k>0: A=set(map(lambda x: int(x) - 1, input().split())) else: A=set() seen=[[-1]*5 for i in range(n)] seen[0][0]=0 from collections import deque q = deque() q.append((0, 0)) # 最初の頂点を入れておく while q: cur_node, iwi_cnt = q.popleft() if cur_node==n-1: print(seen[cur_node][iwi_cnt]) exit() for nxt_node in G[cur_node]: if nxt_node in A: nxt_cnt=iwi_cnt+1 if nxt_cnt>=5: continue else: nxt_cnt=0 if seen[nxt_node][nxt_cnt]==-1: seen[nxt_node][nxt_cnt]=seen[cur_node][iwi_cnt]+1 q.append((nxt_node, nxt_cnt)) print(-1)