結果

問題 No.3113 The farthest point
ユーザー kq5y
提出日時 2025-04-20 17:24:42
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 738 bytes
コンパイル時間 132 ms
コンパイル使用メモリ 12,288 KB
実行使用メモリ 80,848 KB
最終ジャッジ日時 2025-04-20 17:25:14
合計ジャッジ時間 29,597 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 15 WA * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict

import sys

sys.setrecursionlimit(10**6)

# dfs to dfs で最長距離を求める

n = int(input())
graph = defaultdict(list)
for _ in range(n - 1):
    u, v, w = map(int, input().split())
    graph[u].append((v, w))
    graph[v].append((u, w))


def dfs(node, parent):
    far_node = node
    max_dist = -float("inf")
    for neighbor, weight in graph[node]:
        if neighbor == parent:
            continue
        n_node, n_dist = dfs(neighbor, node)
        n_dist += weight
        if n_dist > max_dist:
            max_dist = n_dist
            far_node = n_node
    return far_node, max_dist if max_dist != -float("inf") else 0


u, _ = dfs(1, -1)
v, diameter = dfs(u, -1)

print(diameter)
0