AT_abc070_d [ABC070D] Transit Tree Path

Description

[problemUrl]: https://atcoder.jp/contests/abc070/tasks/abc070_d $ N $ 頂点の木が与えられます。 木とはグラフの一種であり、頂点の数を $ N $ とすると、辺の数が $ N-1 $ 本である閉路のない連結グラフです。 $ i(1≦i≦N-1) $ 番目の辺は 頂点 $ a_i $ と 頂点 $ b_i $ を距離 $ c_i $ で結びます。 また、$ Q $ 個の質問クエリと整数 $ K $ が与えられます。 - $ j(1≦j≦Q) $ 番目の質問クエリでは、頂点 $ x_j $ から 頂点 $ K $ を経由しつつ、頂点 $ y_j $ まで移動する場合の最短経路の距離を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ a_1 $ $ b_1 $ $ c_1 $ $ : $ $ a_{N-1} $ $ b_{N-1} $ $ c_{N-1} $ $ Q $ $ K $ $ x_1 $ $ y_1 $ $ : $ $ x_{Q} $ $ y_{Q} $

Output Format

質問クエリの解答を $ Q $ 行出力せよ。 $ j(1≦j≦Q) $ 行目には、$ j $ 番目のクエリの答えを出力せよ。

Explanation/Hint

### 制約 - $ 3≦N≦10^5 $ - $ 1≦a_i,b_i≦N\ (1≦i≦N-1) $ - $ 1≦c_i≦10^9\ (1≦i≦N-1) $ - 与えられるグラフは木である。 - $ 1≦Q≦10^5 $ - $ 1≦K≦N $ - $ 1≦x_j,y_j≦N\ (1≦j≦Q) $ - $ x_j≠y_j\ (1≦j≦Q) $ - $ x_j≠K,y_j≠K\ (1≦j≦Q) $ ### Sample Explanation 1 与えられた $ 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 $ ### Sample Explanation 2 質問クエリに対する最短経路は、必ず頂点 $ K=2 $ を通過する必要があります。