結果

問題 No.3113 The farthest point
ユーザー ACF37
提出日時 2025-04-19 13:12:48
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 836 bytes
コンパイル時間 388 ms
コンパイル使用メモリ 12,032 KB
実行使用メモリ 81,148 KB
最終ジャッジ日時 2025-04-19 13:13:32
合計ジャッジ時間 43,555 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 16 WA * 8 TLE * 9
権限があれば一括ダウンロードができます

ソースコード

diff #

# 重み付き木の直径を求める
N = int(input())

edges = [[] for _ in range(N)]
for _ in range(N - 1):
    a, b, c = map(int, input().split())
    edges[a - 1].append((b - 1, c))
    edges[b - 1].append((a - 1, c))

def dfs(start, edges):
    dist = [-1] * len(edges)
    dist[start] = 0
    queue = [start]
    max_dist = 0
    max_node = start
    
    while queue:
        node = queue.pop(0)
        for neighbor, weight in edges[node]:
            if dist[neighbor] == -1:
                dist[neighbor] = dist[node] + weight
                queue.append(neighbor)
                if dist[neighbor] > max_dist:
                    max_dist = dist[neighbor]
                    max_node = neighbor
    
    return max_node, max_dist


farthest_node, _ = dfs(0, edges)
_, diameter = dfs(farthest_node, edges)

print(diameter)
0