結果
問題 | No.2739 Time is money |
ユーザー |
|
提出日時 | 2024-05-29 10:57:09 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 881 ms / 2,000 ms |
コード長 | 597 bytes |
コンパイル時間 | 432 ms |
コンパイル使用メモリ | 82,000 KB |
実行使用メモリ | 114,172 KB |
最終ジャッジ日時 | 2024-12-20 20:59:46 |
合計ジャッジ時間 | 13,268 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
from heapq import heapify, heappop, heappush N, M, X = map(int, input().split()) G = [[] for _ in range(N)] for _ in range(M): u, v, C, T = map(int, input().split()) u -= 1; v -= 1 G[u].append((v, C + T * X)) G[v].append((u, C + T * X)) H = [(0, 0)] heapify(H) dist = [10 ** 18] * N dist[0] = 0 while len(H) > 0: d, u = heappop(H) if d > dist[u]: continue for v, w in G[u]: if dist[v] > dist[u] + w: dist[v] = dist[u] + w heappush(H, (dist[v], v)) if dist[N - 1] == 10 ** 18: print(-1) else: print((dist[N - 1] + X - 1) // X)