配点 : 400 点
問題文
N 頂点の木が与えられます。
木とはグラフの一種であり、頂点の数を N とすると、辺の数が N−1 本である閉路のない連結グラフです。
i(1≤i≤N−1) 番目の辺は 頂点 ai と 頂点 bi を距離 ci で結びます。
また、Q 個の質問クエリと整数 K が与えられます。
- j(1≤j≤Q) 番目の質問クエリでは、頂点 xj から 頂点 K を経由しつつ、頂点 yj まで移動する場合の最短経路の距離を求めてください。
制約
- 3≤N≤105
- 1≤ai,bi≤N(1≤i≤N−1)
- 1≤ci≤109(1≤i≤N−1)
- 与えられるグラフは木である。
- 1≤Q≤105
- 1≤K≤N
- 1≤xj,yj≤N(1≤j≤Q)
- xj=yj(1≤j≤Q)
- xj=K,yj=K(1≤j≤Q)
入力
入力は以下の形式で標準入力から与えられる。
N
a1 b1 c1
:
aN−1 bN−1 cN−1
Q K
x1 y1
:
xQ yQ
出力
質問クエリの解答を Q 行出力せよ。
j(1≤j≤Q) 行目には、j 番目のクエリの答えを出力せよ。
5
1 2 1
1 3 1
2 4 1
3 5 1
3 1
2 4
2 3
4 5
3
2
4
与えられた 3 つの質問クエリに対する最短経路は以下の通りです。
- 1 つ目の質問クエリ: 頂点 2 → 頂点 1 → 頂点 2 → 頂点 4 : 距離 1+1+1=3
- 2 つ目の質問クエリ: 頂点 2 → 頂点 1 → 頂点 3 : 距離 1+1=2
- 3 つ目の質問クエリ: 頂点 4 → 頂点 2 → 頂点 1 → 頂点 3 → 頂点 5 : 距離 1+1+1+1=4
7
1 2 1
1 3 3
1 4 5
1 5 7
1 6 9
1 7 11
3 2
1 3
4 5
6 7
5
14
22
質問クエリに対する最短経路は、必ず頂点 K=2 を通過する必要があります。
10
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
7 8 1000000000
8 9 1000000000
9 10 1000000000
1 1
9 10
17000000000