結果
| 問題 |
No.807 umg tours
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-03-22 23:14:23 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 812 bytes |
| コンパイル時間 | 133 ms |
| コンパイル使用メモリ | 82,480 KB |
| 実行使用メモリ | 170,300 KB |
| 最終ジャッジ日時 | 2024-09-19 06:36:01 |
| 合計ジャッジ時間 | 10,599 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 WA * 20 |
ソースコード
from collections import defaultdict
from collections import deque
N, M = map( int, input().split())
E = [ [] for _ in range(N)]
D = defaultdict( int)
for _ in range(M):
a, b, c = map( int, input().split())
a, b = a-1, b-1
D[(a,b)] = D[(b,a)] = c
E[a].append(b)
E[b].append(a)
V = [ [10**16, 10**16,0] for _ in range(N)]
V[0] = [0,0,0]
H = deque(E[0])
P = [0]*N
P[0] = 1
for t in E[0]:
d = D[(0,t)]
V[t] = [d,d,d]
P[t] = 1
while H:
h = H.popleft()
q, p, m = V[h]
for t in E[h]:
d = D[(h,t)]
V[t][0] = min(V[t][0], q + d)
if V[t][1] - V[t][2] >= p + d - max(d,m):
V[t][1] = p+d
V[t][2] = max(d,m)
if P[t] == 0:
H.append(t)
P[t] = 1
for i in range(N):
print(V[i][0] + V[i][1] - V[i][2])