#include using ll = long long; #define var auto const char newl = '\n'; using namespace std; bool solve(){ return true; } ll res = 0; vector>> g; ll solve(ll node, ll par) { ll mx1 = 0, mx2 = 0; for (var [adj, w] : g[node]) { if (adj == par) continue; var nxt = solve(adj, node) + w; if (mx1 < nxt) { mx2 = mx1; mx1 = nxt; } else if (mx2 < nxt) { mx2 = nxt; } } res = max(res, mx1 + mx2); return mx1; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; g = vector>>(n); for (int i = 0; i < n - 1; i++) { int u, v, w; cin >> u >> v >> w; u--; v--; g[u].emplace_back(v, w); g[v].emplace_back(u, w); } solve(0, -1); cout << res << endl; }