#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int n;
#define int long long
struct Edge{
int id,w;
};
vector<Edge>h[N];
int dis[N];
void dfs(int u,int father,int distance){//找树的直径
dis[u]=distance;
for(auto node:h[u]){
if(node.id!=father){
dfs(node.id,u,distance+node.w);
}
}
}
signed main(){
cin>>n;
for(int i=0;i<n-1;i++){
int a,b,c;cin>>a>>b>>c;
h[a].push_back({b,c});
h[b].push_back({a,c});
}//a b之间有一条路 长度为c
dfs(1,-1,0);
int u=1;
for(int i=1;i<=n;i++){
if(dis[i]>dis[u])u=i;
}
dfs(u,-1,0);
for(int i=1;i<=n;i++){
if(dis[i]>dis[u]){
u=i;
}
}
int s=dis[u];
cout<<s*10+s*(s+1)/2;
return 0;
}
03-20
637
09-15
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交