#include<bits/stdc++.h>
using namespace std;
const int N=100009;
struct node {
int to,di;
node(int x,int y):to(x),di(x) {}
};
int n,ans=0,d[N];
vector<node>w[N];
void dfs(int x,int fa) {
int si=w[x].size();
d[x]=0;
for(int i=0; i<si; i++) {
int y=w[x][i].to;
if(y==fa)
continue;
dfs(y,x);
ans=max(ans,d[x]+d[y]+w[x][i].di);
d[x]=max(d[x],d[y]+w[x][i].di);
}
}
int main() {
cin>>n;
for(int i=1; i<=n-1; i++) {
int x,y,z;
cin>>x>>y>>z;
w[x].push_back(node(y,z)),w[y].push_back(node(x,z));
}
dfs(1,0);
cout<<ans;
return 0;
}
树的直径
最新推荐文章于 2024-02-08 20:12:30 发布