結果
問題 | No.3013 ハチマキ買い星人 |
ユーザー |
![]() |
提出日時 | 2025-01-25 13:15:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,009 ms / 2,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 217 ms |
コンパイル使用メモリ | 82,880 KB |
実行使用メモリ | 125,180 KB |
最終ジャッジ日時 | 2025-01-25 22:40:11 |
合計ジャッジ時間 | 22,873 ms |
ジャッジサーバーID (参考情報) |
judge8 / judge9 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 45 |
ソースコード
from heapq import heappop, heappush def readints(): return list(map(int, input().split())) def deep_recursion(): import sys import pypyjit # type: ignore sys.setrecursionlimit(550000) pypyjit.set_param('max_unroll_recursion=-1') def main(): N, M, P, Y = readints() adj = [[] for _ in range(N)] for _ in range(M): a, b, c = readints() a -= 1 b -= 1 adj[a].append((b, c)) adj[b].append((a, c)) store = {} for _ in range(P): d, e = readints() store[d-1] = e INF = 10**18 dist = [INF] * N dist[0] = 0 q = [(0, 0)] ans = 0 while q: d, u = heappop(q) if d > dist[u]: continue if u in store: ans = max(ans, max(Y - d, 0) // store[u]) for v, c in adj[u]: if dist[u] + c < dist[v]: dist[v] = dist[u] + c heappush(q, (dist[v], v)) print(ans) if __name__ == '__main__': # deep_recursion() main()