#include <bits/stdc++.h>
#define fi first
#define endl '\n'
#define se second
#define int long long
#define getName(x) #x
#define vi std::vector<int>
#define isz(v) (int) v.size()
#define pii std::pair<int, int>
#define all(v) v.begin(), v.end()
#define loop cerr << "here" << endl;
#define breakLoop if(TIME > 1) break;
#define TIME 1.0 * clock() / CLOCKS_PER_SEC
using namespace std;
typedef long long ll;
const int MAXN = 1e6 + 7;
template <typename T> void maximize(T &a, T b){if(a < b) a = b;}
template <typename T> void minimize(T &a, T b){if(a > b) a = b;}
int ans, n, sz[MAXN];
vector<pii> a[MAXN];
vi save; deque <int> dq;
void dfs(int u, int p, int costPar){
sz[u] = 1; bool cntOdd = 0;
for(auto i : a[u]){int v = i.fi; if(v == p)continue; dfs(v, u, i.se); sz[u] += sz[v]; if(sz[v]&1) cntOdd = 1;}
if((sz[u]&1) and cntOdd and sz[u] > 1){
save.clear(), dq.clear();
for(auto i : a[u]) if((sz[i.fi]&1) and i.fi != p) save.push_back(i.se); sort(all(save));
for(auto i : save) dq.push_back(i);
while(isz(dq)){
maximize(ans, dq.back() + dq.front());
dq.pop_back(), dq.pop_front();
}
}
else if(sz[u] % 2 == 0){
save.clear(), dq.clear(); save.push_back(costPar);
for(auto i : a[u]) if((sz[i.fi]&1) and i.fi != p) save.push_back(i.se); sort(all(save));
for(auto i : save) dq.push_back(i);
while(isz(dq)){
maximize(ans, dq.back() + dq.front());
dq.pop_back(), dq.pop_front();
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
#define task "t"
if (fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
cin >> n;
for(int i = 1; i <= n - 1; i++){
int x, y, w;
cin >> x >> y >> w;
a[x].push_back({y, w});
a[y].push_back({x, w});
}
for(int i = 1; i <= n; i++) sort(all(a[i]), [&] (pii x, pii y){return x.se < y.se;});
dfs(1, -1, 0);
cout << ans;
cerr << endl << "-------Time elapsed-------" << endl;
cerr << " " << TIME << " s" << endl;
cerr << "--------------------------" << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZ2V0TmFtZSh4KSAjeAojZGVmaW5lIHZpIHN0ZDo6dmVjdG9yPGludD4KI2RlZmluZSBpc3oodikgKGludCkgdi5zaXplKCkKI2RlZmluZSBwaWkgc3RkOjpwYWlyPGludCwgaW50PgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBsb29wIGNlcnIgPDwgImhlcmUiIDw8IGVuZGw7CiNkZWZpbmUgYnJlYWtMb29wIGlmKFRJTUUgPiAxKSBicmVhazsKI2RlZmluZSBUSU1FIDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgaW50IE1BWE4gPSAxZTYgKyA3OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgbWF4aW1pemUoVCAmYSwgVCBiKXtpZihhIDwgYikgYSA9IGI7fQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBtaW5pbWl6ZShUICZhLCBUIGIpe2lmKGEgPiBiKSBhID0gYjt9CmludCBhbnMsIG4sIHN6W01BWE5dOwp2ZWN0b3I8cGlpPiBhW01BWE5dOwp2aSBzYXZlOyBkZXF1ZSA8aW50PiBkcTsKCnZvaWQgZGZzKGludCB1LCBpbnQgcCwgaW50IGNvc3RQYXIpewogICAgc3pbdV0gPSAxOyBib29sIGNudE9kZCA9IDA7CiAgICBmb3IoYXV0byBpIDogYVt1XSl7aW50IHYgPSBpLmZpOyBpZih2ID09IHApY29udGludWU7IGRmcyh2LCB1LCBpLnNlKTsgc3pbdV0gKz0gc3pbdl07IGlmKHN6W3ZdJjEpIGNudE9kZCA9IDE7fQogICAgaWYoKHN6W3VdJjEpIGFuZCBjbnRPZGQgYW5kIHN6W3VdID4gMSl7CiAgICAgICAgc2F2ZS5jbGVhcigpLCBkcS5jbGVhcigpOwogICAgICAgIGZvcihhdXRvIGkgOiBhW3VdKSBpZigoc3pbaS5maV0mMSkgYW5kIGkuZmkgIT0gcCkgc2F2ZS5wdXNoX2JhY2soaS5zZSk7IHNvcnQoYWxsKHNhdmUpKTsKICAgICAgICBmb3IoYXV0byBpIDogc2F2ZSkgZHEucHVzaF9iYWNrKGkpOwogICAgICAgIHdoaWxlKGlzeihkcSkpewogICAgICAgICAgICBtYXhpbWl6ZShhbnMsIGRxLmJhY2soKSArIGRxLmZyb250KCkpOwogICAgICAgICAgICBkcS5wb3BfYmFjaygpLCBkcS5wb3BfZnJvbnQoKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKHN6W3VdICUgMiA9PSAwKXsKICAgICAgICBzYXZlLmNsZWFyKCksIGRxLmNsZWFyKCk7IHNhdmUucHVzaF9iYWNrKGNvc3RQYXIpOwogICAgICAgIGZvcihhdXRvIGkgOiBhW3VdKSBpZigoc3pbaS5maV0mMSkgYW5kIGkuZmkgIT0gcCkgc2F2ZS5wdXNoX2JhY2soaS5zZSk7IHNvcnQoYWxsKHNhdmUpKTsKICAgICAgICBmb3IoYXV0byBpIDogc2F2ZSkgZHEucHVzaF9iYWNrKGkpOwogICAgICAgIHdoaWxlKGlzeihkcSkpewogICAgICAgICAgICBtYXhpbWl6ZShhbnMsIGRxLmJhY2soKSArIGRxLmZyb250KCkpOwogICAgICAgICAgICBkcS5wb3BfYmFjaygpLCBkcS5wb3BfZnJvbnQoKTsKICAgICAgICB9CiAgICB9Cn0KCnNpZ25lZCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgI2RlZmluZSB0YXNrICJ0IgogICAgaWYgKGZvcGVuKHRhc2siLmlucCIsICJyIikpewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG4gLSAxOyBpKyspewogICAgICAgIGludCB4LCB5LCB3OwogICAgICAgIGNpbiA+PiB4ID4+IHkgPj4gdzsKICAgICAgICBhW3hdLnB1c2hfYmFjayh7eSwgd30pOwogICAgICAgIGFbeV0ucHVzaF9iYWNrKHt4LCB3fSk7CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgc29ydChhbGwoYVtpXSksIFsmXSAocGlpIHgsIHBpaSB5KXtyZXR1cm4geC5zZSA8IHkuc2U7fSk7CiAgICBkZnMoMSwgLTEsIDApOwogICAgY291dCA8PCBhbnM7CgogICAgY2VyciA8PCBlbmRsIDw8ICItLS0tLS0tVGltZSBlbGFwc2VkLS0tLS0tLSIgPDwgZW5kbDsKICAgIGNlcnIgPDwgIiAgICAgICAgICAiIDw8IFRJTUUgPDwgIiBzIiA8PCBlbmRsOwogICAgY2VyciA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7Cgp9Cg==