给定一棵树,树上有 N 个点,点的编号为 1 \sim N。
有 Q 次询问,每次给定 2 个结点的编号,请计算出这两个结点之间的路径上最长和次长边的长度。
第 1 行读入两个整数 N 和 Q,分别表示点的个数和询问的次数。
接下来 N - 1 行,每行读入三个整数 x,y,len,表示在点 x 和点 y 之间有一条边,边长为 len。
接下来 Q 行,每行读入两个整数 u 和 v,表示询问点 u 和点 v 之间的路径上最长和次长边的长度。
输出 Q 行,每行输出对于每次询问,两个结点之间的路径上最长和次长边的长度。
请注意,这里的次长边,指的是严格意义的次长边,该边的长度必须严格小于路径上最长边的长度。如果两点之间不存在严格的次长边,请输出 -1。
7 6 2 4 6 2 3 8 6 3 2 2 1 6 1 7 1 5 6 20 7 6 6 5 6 4 6 2 3 6 7 5
8 6 20 -1 8 6 8 2 2 -1 20 8
11 10 11 7 1 7 3 12 5 3 20 2 3 19 4 3 18 1 11 15 4 8 17 7 9 18 3 6 17 10 6 2 5 7 10 3 9 8 8 7 10 9 5 2 11 10 5 10 4 2 7 5
20 12 17 2 18 17 18 17 18 17 20 19 17 12 20 17 19 18 20 12
15 7 4 15 11 6 15 1 10 15 11 4 9 18 3 10 16 7 9 17 6 5 11 8 5 9 12 15 7 7 13 6 10 14 9 8 2 19 13 11 11 1 12 6 4 5 4 14 6 2 4 10 10 12 8 12 3 5
11 1 11 9 19 11 11 -1 11 7 11 9 16 11
对于 40\% 的数据,满足 1 \le N \le 100,1 \le Q \le 100
对于 100\% 的数据,满足 1 \le N \le 10^5,1 \le Q \le 10^4,1 \le x,y \le N,1 \le len \le 10^5,1 \le u,v \le N,x \neq y,u \neq v。
测试数据保证 N-1 条边一定能构成一棵树。