#3170. 有根带权树直径

有根带权树直径

题目描述

给定一棵带权有根树,树中包含 nn 个节点,编号为 11nn。树的结构由 n1n-1 条有向边描述,每条边 aba \rightarrow b 的权值为 cc,表示节点 aa 是节点 bb 的父节点,且边的权值为 cc。请计算这棵树(视为无向图后)的直径,即树中任意两个节点之间的最长路径的边权之和。

输入格式

第一行包含一个整数 nn2n1052 \leq n \leq 10^5),表示树的节点数。

接下来的 n1n-1 行,每行包含三个整数 a,b,ca, b, c1a,bn1 \leq a, b \leq n1c10001 \leq c \leq 1000),表示从节点 aa 到节点 bb 有一条权值为 cc 的有向边,其中 aabb 的父节点。

输出格式

输出一个整数,表示这棵带权有根树的直径。

样例

样例输入

5
1 2 3
1 3 4
2 4 2
2 5 1

样例输出

9

样例解释

树的结构如下:

       1
    3 / \ 4
     2   3
2   / \ 1
   4   5 

最长路径为 42134 \rightarrow 2 \rightarrow 1 \rightarrow 3,路径长度为 2+3+4=92 + 3 + 4 = 9

数据范围与提示

  • 数据范围
    • 对于 30% 的数据,n100n \leq 100
    • 对于 60% 的数据,n1000n \leq 1000
    • 对于 100% 的数据,n105n \leq 10^5,每条边的权值 cc 满足 1c10001 \leq c \leq 1000