#include <bits/stdc++.h>
const int N = 1e4+10;
int n,h[N],w[N<<1],ne[N<<1],e[N<<1],idx,fa[N<<1],dis[N<<1],k,ans=2e9;
void add(int a,int b,int c){
e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}
void dfs(int f,int x){
fa[x]=f;
if(dis[x]>dis[k])k=x;
for(int i=h[x];~i;i=ne[i]){
int j=e[i];
if(j==f)continue;
dis[j]=dis[x]+w[i];
dfs(x,j);
}
}
signed main(){
std::cin>>n;
memset(h,-1,sizeof h);
for(int i=1;i<n;i++){
int a,b,c;std::cin>>a>>b>>c;
add(a,b,c),add(b,a,c);
}
dis[1]=0,dfs(0,1);
dis[k]=0,dfs(0,k);
for(int i=k;i;i=fa[i])ans=std::min(ans,std::max(dis[k]-dis[i],dis[i]));
std::cout<<ans<<'\n';
return ~~(0^_^0);
}