結果
問題 |
No.3263 違法な散歩道
|
ユーザー |
|
提出日時 | 2025-09-06 14:01:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 489 ms / 2,000 ms |
コード長 | 635 bytes |
コンパイル時間 | 487 ms |
コンパイル使用メモリ | 82,604 KB |
実行使用メモリ | 117,516 KB |
最終ジャッジ日時 | 2025-09-06 14:01:29 |
合計ジャッジ時間 | 10,080 ms |
ジャッジサーバーID (参考情報) |
judge / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
n,m=map(int,input().split()) a=[[]for i in range(n)] for i in range(m): s,t=map(int,input().split()) a[s-1].append(t-1) a[t-1].append(s-1) k=int(input()) if k>0: b=set(map(int,input().split())) else: b=set() c=[[10**10 for _ in range(5)]for _ in range(n)] c[0][0]=0 now={(0,0)} while now: new=set() for i in now: for j in a[i[0]]: if j+1 in b: if i[1]!=4: if c[j][i[1]+1]==10**10: c[j][i[1]+1]=c[i[0]][i[1]]+1 new.add((j,i[1]+1)) else: if c[j][0]==10**10: c[j][0]=c[i[0]][i[1]]+1 new.add((j,0)) now=new z=min(c[-1]) if z==10**10: print(-1) else: print(z)