# 重み付き木の直径を求める from collections import deque 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 = deque([start]) max_dist = -10**9-1 max_node = start while queue: node = queue.popleft() 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)