結果
問題 |
No.3013 ハチマキ買い星人
|
ユーザー |
![]() |
提出日時 | 2025-02-15 18:03:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 980 ms / 2,000 ms |
コード長 | 797 bytes |
コンパイル時間 | 193 ms |
コンパイル使用メモリ | 82,356 KB |
実行使用メモリ | 145,328 KB |
最終ジャッジ日時 | 2025-02-15 18:04:26 |
合計ジャッジ時間 | 25,379 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 45 |
ソースコード
from heapq import * N, M, P, Y = map(int, input().split()) ABC = [list(map(int, input().split())) for _ in range(M)] DE = [list(map(int, input().split())) for _ in range(P)] E = [[] for _ in range(N)] for a, b, c in ABC: a -= 1 b -= 1 E[a].append((b, c)) E[b].append((a, c)) INF = 10 ** 16 D = [INF] * N # 普通のダイクストラ def dijkstra(): D[0] = 0 q = [(0, 0)] while q: d, u = heappop(q) # 下のifでTLE解消することがある if d > D[u]: continue for i in E[u]: a, b = i if D[a] > D[u] + b: D[a] = D[u] + b heappush(q, (D[a], a)) return dijkstra() ans = 0 for d, e in DE: d -= 1 if D[d] < INF: ans = max(ans, (Y - D[d]) // e) print(ans)