結果

問題 No.3263 違法な散歩道
ユーザー miya256
提出日時 2025-09-06 13:59:50
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 460 ms / 2,000 ms
コード長 811 bytes
コンパイル時間 338 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 122,320 KB
最終ジャッジ日時 2025-09-06 14:00:08
合計ジャッジ時間 9,198 ms
ジャッジサーバーID
(参考情報)
judge2 / judge
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

n,m = map(int,input().split())
g = [[] for _ in range(n)]
for _ in range(m):
    u,v = map(lambda x:int(x)-1,input().split())
    g[u].append(v)
    g[v].append(u)
k = int(input())
iwai = [False] * n

if k > 0:
    a = list(map(lambda x:int(x)-1,input().split()))
    for v in a:
        iwai[v] = True

from collections import deque,defaultdict,Counter

def bfs(v):
    visited = [[False] * 5 for _ in range(n)]
    dq = deque([(v, 0, 0)])
    while dq:
        v, c, d = dq.popleft()
        if v == n-1:
            exit(print(d))
        if visited[v][c]:
            continue
        visited[v][c] = True
        for nv in g[v]:
            if not iwai[nv]:
                dq.append((nv, 0, d+1))
            else:
                if c+1 < 5:
                    dq.append((nv, c+1, d+1))
bfs(0)
print(-1)
0