/* Rozwiazanie wzorcowe do zadania SKO (Skojarzenie)
 * Autor: Jakub Radoszewski
 */

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

#define M 300010

vector<pair<int, int> > t[M];
int maxa[M], maxbez[M];
bool c[M];
int n;

void doit(int v, int par) {
  maxa[v] = maxbez[v] = 0;
  for (int i = 0; i < (int)t[v].size(); ++i)
    if (t[v][i].first != par)
      doit(t[v][i].first, v);
  for (int i = 0; i < (int)t[v].size(); ++i)
    if (t[v][i].first != par)
      maxbez[v] += maxa[t[v][i].first];
  maxa[v] = maxbez[v];
  for (int i = 0; i < (int)t[v].size(); ++i)
    if (t[v][i].first != par) {
      maxa[v] = max(maxa[v], maxbez[v] - maxa[t[v][i].first] + maxbez[t[v][i].first] + t[v][i].second);
    }
}

int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) {
    int a, b, w;
    scanf("%d%d%d", &a, &b, &w);
    --a; --b;
    t[a].push_back(make_pair(b, w));
    t[b].push_back(make_pair(a, w));
  }
  doit(0, -1);
  printf("%d\n", maxa[0]);
  return 0;
}
