算出所有路径之和×2减去树的直径
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e6+10;
ll n,ans;
ll e[N],h[N],idx,w[N],ne[N],dis[N];
void add(ll a,ll b,ll c){
e[idx]=b,ne[idx]=h[a],w[idx]=c,h[a]=idx++;
}
ll c;
void dfs(ll u,ll fa) {
for (ll i=h[u];~i;i=ne[i]) {
ll v=e[i];
if(v!=fa){
dis[v]=dis[u]+w[i];
if(dis[v]>dis[c])c=v;
dfs(v,u);
}
}
}
int main() {
memset(h,-1,sizeof h);
cin>>n;
ll summ=0;
for (ll i=1;i<n; i++ ) {
ll a,b,c;
cin>>a>>b>>c;
add(a,b,c),add(b,a,c);
summ+=c;
}
dfs(1,0);
dis[c]=0;
dfs(c,0);
cout<<summ*2-dis[c]<<endl;
return 0;
}