def find_diameter(n, edges): # グラフの作成 graph = [[] for _ in range(n+1)] for u, v, w in edges: graph[u].append((v, w)) graph[v].append((u, w)) # 任意の頂点からの最長パスを見つける関数 def find_farthest(start): dist = [-float('inf')] * (n+1) dist[start] = 0 visited = [False] * (n+1) def dfs(node): visited[node] = True for neighbor, weight in graph[node]: if not visited[neighbor]: dist[neighbor] = max(dist[neighbor], dist[node] + weight) dfs(neighbor) dfs(start) # 最大距離とその頂点を見つける max_dist = -float('inf') max_node = start for i in range(1, n+1): if dist[i] > max_dist: max_dist = dist[i] max_node = i return max_node, max_dist # 頂点1から最も遠い頂点を見つける farthest_node, _ = find_farthest(1) # その頂点から最も遠い頂点を見つける _, max_distance = find_farthest(farthest_node) # 負の場合は0を返す(パスを選ばない) return max(0, max_distance) # 入力を読み込む n = int(input()) edges = [] for _ in range(n-1): u, v, w = map(int, input().split()) edges.append((u, v, w)) # 結果を出力 print(find_diameter(n, edges))