結果
問題 |
No.3113 The farthest point
|
ユーザー |
![]() |
提出日時 | 2025-04-18 22:40:53 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 720 ms / 2,000 ms |
コード長 | 772 bytes |
コンパイル時間 | 601 ms |
コンパイル使用メモリ | 81,924 KB |
実行使用メモリ | 148,044 KB |
最終ジャッジ日時 | 2025-04-18 22:41:09 |
合計ジャッジ時間 | 12,586 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
from collections import deque def bfs(s): dq = deque() dq.append([s, 0]) dist = [10**9 for _ in range(N)] dist[s] = 0 res = [] while len(dq) != 0: p, h = dq.popleft() res.append(p) for e,_ in edge[p]: if dist[e] == 10**9: dq.append([e, h + 1]) dist[e] = h + 1 return res N=int(input()) edge = [[] for _ in range(N)] for _ in range(N-1): u,v,w=map(int,input().split()) edge[u-1].append([v-1,w]) edge[v-1].append([u-1,w]) res = bfs(0) tans=[-1]*N ans=0 for r in res[::-1]: d=[0,0] for e,w in edge[r]: if tans[e] == -1: continue d.append(tans[e]+w) d.sort(reverse=True) tans[r]=d[0] ans=max(ans,d[0]+d[1]) print(ans)