結果
| 問題 |
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])