这样为什么错的
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e4+5;
int n,siz[N],ans=2e9,all;
struct graph{
int v,w;
};
vector<graph>g[N];
void dfs1(int u,int last){
for(auto [v,w]:g[u]){
if(v!=last){
siz[v]=w,dfs1(v,u);
}
}
}
void dfs2(int u,int last){
int devo=0;
for(auto [v,w]:g[u]){
if(v!=last){
dfs2(v,u),devo=max(devo,siz[v]),siz[u]+=siz[v];
}
}
devo=max(devo,all-siz[u]),ans=min(ans,devo);
}
signed main(){
cin>>n;
for(int i=1,u,v,w;i<n;i++){
cin>>u>>v>>w,g[u].push_back({v,w}),g[v].push_back({u,w}),all+=w;
}
dfs1(1,1),dfs2(1,1);
cout<<ans;
}