結果
| 問題 | No.3712 Urban Train |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-13 21:52:25 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 508 ms / 2,000 ms |
| + 921µs | |
| コード長 | 648 bytes |
| 記録 | |
| コンパイル時間 | 71 ms |
| コンパイル使用メモリ | 80,896 KB |
| 実行使用メモリ | 137,912 KB |
| 最終ジャッジ日時 | 2026-09-13 21:52:37 |
| 合計ジャッジ時間 | 7,435 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 39 |
ソースコード
from heapq import * N, M = map(int, input().split()) G = [[] for i in range(N)] for _ in range(M): U, V, W = map(int, input().split()); U -= 1; V -= 1 G[U].append((V, W)) G[V].append((U, W)) A = list(map(int, input().split())) B = list(map(int, input().split())) C = list(map(int, input().split())) def f(i, t): k = (t + A[i] - 1) // A[i] return k * A[i] + (min(A[i], C[i]) if k % B[i] == 0 else 0) d = [10 ** 18] * N; que = [] d[0] = 1; heappush(que, (d[0], 0)) while que: dv, v = heappop(que) if d[v] != dv: continue nd = f(v, d[v]) for nv, c in G[v]: if nd + c < d[nv]: d[nv] = nd + c heappush(que, (d[nv], nv)) print(d[-1])