atcoder#ABC294G. [ABC294G] Distance Queries on a Tree
[ABC294G] Distance Queries on a Tree
Score : points
Problem Statement
You are given a tree with vertices. Edge connects vertices and , and has a weight of .
Process queries in order. There are two kinds of queries as follows.
1 i w
: Change the weight of edge to .2 u v
:Print the distance between vertex and vertex .
Here, the distance between two vertices and of a tree is the smallest total weight of edges in a path whose endpoints are and .
Constraints
- The given graph is a tree.
- For each query of the first kind,- , and
- .
- , and
- .
- For each query of the second kind,- .
- .
- There is at least one query of the second kind.
- All values in the input are integers.
Input
The input is given from Standard Input in the following format:
Here, denotes the -th query and is in one of the following format:
Output
Print lines, where is the number of queries of the second kind. The -th line should contain the answer to the -th query of the second kind.
5
1 2 3
1 3 6
1 4 9
4 5 10
4
2 2 3
2 1 5
1 3 1
2 1 5
9
19
11
The initial tree is shown in the figure below.
Each query should be processed as follows.
- The first query asks you to print the distance between vertex and vertex . Edge and edge , in this order, form a path between them with a total weight of , which is the minimum, so you should print .
- The second query asks you to print the distance between vertex and vertex . Edge and edge , in this order, form a path between them with a total weight of , which is the minimum, so you should print .
- The third query changes the weight of edge to .
- The fourth query asks you to print the distance between vertex and vertex . Edge and edge , in this order, form a path between them with a total weight of , which is the minimum, so you should print .
7
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
3
2 1 6
1 1 294967296
2 1 6
5000000000
4294967296
Note that the answers may not fit into -bit integers.
1
1
2 1 1
0
8
1 2 105
1 3 103
2 4 105
2 5 100
5 6 101
3 7 106
3 8 100
18
2 2 8
2 3 6
1 4 108
2 3 4
2 3 5
2 5 5
2 3 1
2 4 3
1 1 107
2 3 1
2 7 6
2 3 8
2 1 5
2 7 6
2 4 7
2 1 7
2 5 3
2 8 6
308
409
313
316
0
103
313
103
525
100
215
525
421
209
318
519