結果
問題 |
No.3111 Toll Optimization
|
ユーザー |
|
提出日時 | 2025-04-18 21:44:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,751 ms / 5,000 ms |
コード長 | 551 bytes |
コンパイル時間 | 492 ms |
コンパイル使用メモリ | 82,424 KB |
実行使用メモリ | 143,564 KB |
最終ジャッジ日時 | 2025-04-18 21:45:30 |
合計ジャッジ時間 | 37,854 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 70 |
ソースコード
from heapq import* (n,m,k),c,*e=[[*map(int,s.split())]for s in open(0)] g=[[]for _ in range(n)] for i,(u,v)in zip(c,e): g[u-1]+=(v-1,i), g[v-1]+=(u-1,i), q=[(0,0,0)] INF=1<<60 s=[[INF]*n for _ in range(k+1)] s[0][0]=0 while q: c,p,nk=heappop(q) if s[nk][p]<c: continue for v,nc in g[p]: if s[nk][v]>c+nc: s[nk][v]=c+nc heappush(q,(s[nk][v],v,nk)) if nk<k: if s[nk+1][v]>c: s[nk+1][v]=c heappush(q,(s[nk+1][v],v,nk+1)) ans=INF for i in range(k+1): ans=min(ans,s[i][-1]) print([-1,ans][ans<INF])