#YHDF2169. 树上的距离(distance)

树上的距离(distance)

问题描述

给出 nn 个点的一棵树,多次询问两个结点之间的最短距离。(边是双向的,也就是读入的结点没有父子之分) 两个结点之间的距离的定义是,两个结点之间的唯一简单路径边长的和。

输入格式

测试数据第一行为两个整数 NNMM1<n100001 < n≤10000, 0<m200000 < m≤20000)。 NN 表示点数,MM 表示询问次数。 下来 n1n-1 行,每行三个整数 x,y,kx,y,k,表示点 xx 和点 yy 之间存在一条边长度为 kk0<k1000 < k≤100)。 再接下来 mm 行,每行两个整数 xx yy,表示询问点 xx 到点 yy 的最短距离。

输出格式

输出 mm 行,对于每次询问,输出一行。

样例

输入 #1

2 2
1 2 100
1 2
2 1

输出 #1

100
100

输入 #2

3 2
1 2 10
3 1 15
1 2
3 2

输出 #2

10
25