include[HTML_REMOVED]
using namespace std;
int head[100001 * 2],edge[100001 * 2],Next[100001 * 2],ver[100001 * 2];
int vis[100001],dist[100001];
int n,p,q,d;
int t = 0;
int maxd = 0;
void add(int u,int v,int w) {
ver[t++] = v,edge[t] = w;
Next[t] = head[u],head[u] = t;
return ;
}
int BFS(int u) {
queue[HTML_REMOVED]Q;
while(!Q.empty()) Q.pop();
memset(vis,0,sizeof(vis));
memset(dist,0,sizeof(dist));
Q.push(u);
int x,max_num = 0;
while(!Q.empty()) {
x = Q.front();
Q.pop();
vis[x] = 1;
for(int i = head[x]; i ; i = Next[i]) {
int y = ver[i];
if(vis[y]) continue;
vis[y] = 1;
dist[y] = dist[x] + edge[i];
if(dist[y] > maxd ) {
maxd = dist[y];
max_num = y;
}
Q.push(y);
}
}
return max_num;
}
int main() {
cin>>n;
for(int i = 1; i < n; i ++) {
cin>>p>>q>>d;
add(p,q,d);
add(q,p,d);
}
int u = BFS(1);
int s = BFS(u);
cout<<maxd * 10 + maxd * (maxd + 1 ) / 2<<endl;
return 0;
}