005 - 通勤路

時間制限 1 秒 / メモリ制限 64 MB / 得点 10 / x 0 /


TLE
1sec
MLE
64MB
得点
10

問題

PCK君が住むアイヅ町には、N個の地点と各地点をつなぐ N − 1 本の道があります。地点にはそれぞれ 1 から N までの番号がついていて、どの道も双方向に移動することができます。また、どの地点からでも、いくつかの道を通っていけば他の地点に到達できます。

株式会社IZUAのCEOであるPCK君は、日々の生活に変化を加えるため、ルーチンワークとして毎日通勤路を変えることにしています。

PCK君は、以下の条件を満たす経路で通勤します。

  • 自宅の最寄りの地点 u を出発し、会社の最寄りの地点 v へ到着する経路である。
  • uv は出発時と到着時にそれぞれちょうど1度通る。
  • 経路上の uv 以外の各地点は高々2回まで通る。
  • 経路上の各道は高々2回まで通る。
PCK君は自宅と会社の移転を検討していて、移転後に何通りの通勤路を楽しむことができるか知りたがっています。 地点の数、地点同士を直接つなぐ道の情報、移転後の自宅の最寄りの地点 u と会社の最寄りの地点 v が与えられる。ただし、 u と v の組は質問としていくつか与えられる。各質問に対して、通勤路の数を求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

N
s1 t1
s2 t2
:
sN−1 tN−1
Q
u1 v1
u2 v2
:
uQ vQ

1行目に地点の数 N ( 2 ≤ N ≤ 100,000 )が与えられる。続く N − 1 行に、2つの地点を直接つなぐ道の情報が与えられる。 siti ( 1 ≤ si < tiN )は i 番目の道がつなぐ2つの地点の番号である。ただし、どの2つの地点についても、それらを直接つなぐ道は1本以下とする。続く行に質問の数 Q ( 1 ≤ Q ≤ 100,000 )が与えられる。続く Q 行に各質問を表す2つの整数 uivi ( 1 ≤ ui < viN )が与えられる。

出力

出力の最後に改行を入れること。

入出力例

入力例

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

出力例

1
2