#include using namespace std; using ll = long long; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector>> g(n); for(int i = 1; i < n; i++){ int u, v, w; cin >> u >> v >> w; u--, v--; g[u].emplace_back(v, w); g[v].emplace_back(u, w); } queue que; auto bfs = [&](int v){ vector dp(n); vector used(n); dp[v] = 0; used[v] = true; que.emplace(v); while(!que.empty()){ v = que.front(); que.pop(); for(auto [u, w] : g[v]){ if(used[u]) continue; used[u] = true; dp[u] = dp[v] + w; que.emplace(u); } } return dp; }; auto dp0 = bfs(0); auto dp1 = bfs(max_element(dp0.begin(), dp0.end()) - dp0.begin()); cout << *max_element(dp1.begin(), dp1.end()) << '\n'; }