N<=50000, W<=1000
ans=2*Σw-1号点到图上其他点的最远距离
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<queue>
#define M 50000
using namespace std;
int n,cnt=1,num[2*M+10],nxt[2*M+10],head[M+10],val[2*M+10];
int f[M+10];
int ans,tot;
void add(int s,int t,int w)
{
cnt++;
num[cnt]=t;
nxt[cnt]=head[s];
head[s]=cnt;
val[cnt]=w;
}
void dfs(int x,int z)
{
int p=0;
for(int i=head[x];i;i=nxt[i])
{
int k=num[i];
if(f[k]==0)
{
f[k]=1;p=1;
dfs(k,z+val[i]);
}
}
if(p==0)
{
ans=max(ans,z);
return;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<n;i++)
{
int s,t,w;
scanf("%d%d%d",&s,&t,&w);
add(s,t,w);
add(t,s,w);
tot+=w;
}
f[1]=1;
dfs(1,0);
ans=2*tot-ans;
printf("%d",ans);
return 0;
}