#Lutece0912. 树上的距离

树上的距离

Migrated from Lutece 912 树上的距离

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

给你一棵带权树,边权表示两点间的距离。有如下两种操作:

  1. 询问两点间的最短距离。
  2. 修改一条边权值。

对每个操作11,回答两点间的距离。

Input

第一行一个数nn,表示点的个数。接下来n1n-1行,每行33个数uuvvww,表示uuvv间有权为ww的边。边按照输入顺序从11n1n-1编号。输入保证为一颗树。 (2n1052\leq n\leq 10^51u,vn1\leq u, v\leq n1w10001\leq w\leq 1000

之后输入一个数qq,表示询问个数。最后有qq行,每行第一个数opopop=1op=122)为操作类型。

op=1op=1时,输入uuvv表示询问uuvv间的距离。 (uvu\neq v1u,vn1\leq u, v\leq n

opop22时,输入ididww表示把编号为idid的边的权值改为ww。 (1q1051\leq q\leq 10^51idn11\leq id\leq n - 11w10001\leq w\leq 1000

Output

对于对每个操作11,输出一行,回答两点间的距离。

Samples

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

Resources

2015 UESTC Training for Graph Theory