트리와 쿼리
문제
부터 까지 개의 정점으로 이루어진 트리가 있다. 번째 간선은 서로 다른 두 정점 , 를 잇는다. (1 ≤ i ≤ N - 1)
개의 정점 중 몇 개를 골라, 그 고른 정점들을 라고 하자. 또한, 를 만족하는 (1 ≤ i ≤ K)가 존재할 때, 정점 가 에 속한다고 부르자.
에 속하는 서로 다른 두 정점 , 에 대하여, 에 속하는 정점만을 이용하여 트리 위에서 , 사이를 오갈 수 있다면, “와 는 위에서 연결되어 있다”고 하자.
예를 들어, 아래와 같은 트리를 생각하자. ()
만일, , 라면, “과 ”, “과 ”, “와 ”은 각각 서로 위에서 연결되어 있다. 그러나, “과 ”, “와 ”은 각각 서로 위에서 연결되어 있지 않다.
다음 조건을 모두 만족하는 정점쌍 의 개수를 의 연결 강도라고 하자.
- 와 는 서로 다른 두 정점.
- 1 ≤ u < v ≤ N.
- 와 는 위에서 연결되어 있다.
고른 정점들 가 주어질 때, 의 연결 강도를 계산하는 프로그램을 작성하라. 여러분은 이러한 질의 개에 대하여 모두 답해야 한다.
입력
첫 번째 줄에 정수 이 주어진다.
다음 ()개의 줄에 각 간선에 대한 정보가 주어진다. 이 중 (1 ≤ i ≤ N - 1)번째 줄에는 두 정수 , 가 주어진다.
다음 줄에 정수 가 주어진다.
다음 개의 줄에 각 질의에 대한 정보가 주어진다. 이 중 (1 ≤ i ≤ Q)번째 줄은 번째 질의를 나타내며, 정수 와 개의 정수 가 차례대로 주어진다.
출력
첫 번째 줄부터 개의 줄에 걸쳐, 각 질의에 대한 답을 출력한다. 이 중 (1 ≤ i ≤ Q)번째 줄에는 번째 질의에서 주어진 에 대하여, 의 연결 강도를 출력한다.
예제
예제 1
7 1 2 1 3 1 5 2 7 4 6 4 7 6 1 1 2 1 2 4 1 2 3 4 5 1 2 4 6 7 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7
0 1 3 10 7 21