結果
問題 |
No.3013 ハチマキ買い星人
|
ユーザー |
|
提出日時 | 2025-01-21 19:24:17 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,134 bytes |
コンパイル時間 | 345 ms |
コンパイル使用メモリ | 82,100 KB |
実行使用メモリ | 319,172 KB |
最終ジャッジ日時 | 2025-01-25 22:01:14 |
合計ジャッジ時間 | 50,946 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 34 TLE * 11 |
ソースコード
from collections import deque import sys # 入力を高速化 input = sys.stdin.read def bfs(start, N, G, Y): dist = [-1] * (N + 1) dist[start] = Y que = deque([start]) while que: pos = que.popleft() for to, cost in G[pos]: if dist[pos] >= cost and dist[pos] - cost > dist[to]: dist[to] = dist[pos] - cost que.append(to) return dist def main(): # 入力 data = input().splitlines() N, M, P, Y = map(int, data[0].split()) # グラフの初期化 G = [[] for _ in range(N + 1)] edge_set = set() idx = 1 for i in range(M): a, b, c = map(int, data[idx].split()) G[a].append((b, c)) G[b].append((a, c)) edge_set.add((a, b)) idx += 1 # BFSの実行 ret = bfs(1, N, G, Y) # 結果の計算 ans = 0 visited = set() for i in range(P): d, e = map(int, data[idx].split()) visited.add(d) ans = max(ans, ret[d] // e) idx += 1 # 結果を出力 print(ans) if __name__ == "__main__": main()