#3924. 直径

直径

题目描述

QQ 最近学习了一些图论知识。

根据课本,有如下定义。

树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度。

如果一棵树有 NN 个节点,可以证明其有且仅有 NN−1 条边。

路径:一棵树上,任意两个节点之间最多有一条简单路径。

我们用dis(a,b) dis(a,b) 表示点 aa 和点 bb 的路径上各边长度之和。

dis(a,b)dis(a,b)aba、b 两个节点间的距离。

直径:一棵树上,最长的路径为树的直径。

树的直径可能不是唯一的。

现在小 QQ 想知道,对于给定的一棵树,其直径的长度是多少,以及有多少条边满足所有的直径都经过该边。

输入格式

第一行包含一个整数 NN,表示节点数。

接下来 NN−1 行,每行三个整数a,b,c a,b,c,表示点 aa 和点b b 之间有一条长度为 cc 的无向边。

输出格式

共两行。

第一行一个整数,表示直径的长度。

第二行一个整数,表示被所有直径经过的边的数量。

样例

6 
3 1 1000
1 4 10
4 2 100
4 5 50
4 6 100
1110
2

数据范围

  • 2N2000002≤N≤200000,点的编号从 1 开始。
  • c109c≤10^9

来源

  • SDOI2013
  • BZOJ3124
  • 算法竞赛进阶指南