만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

곰곰이의 아르바이트

시간 제한2초메모리 제한1024 MB

요약
트리에서 A, B, C 순서로 이동하는 경로를 따라 닭다리를 두 개 살 수 있는 도시 쌍의 개수를 구합니다.
난이도

보통10점 중 7점

유형
트리, DFS, 구현
정답자
아직 제출이 없습니다

문제

배달하는 곰곰이

심부름을 잘하는 곰곰이는 최근 배달 아르바이트를 할 기회를 얻었다.

곰곰이의 나라에서는 배달 주문을 들어온 순서대로 2개씩 묶어 처리해야 한다. 그래서 곰곰이는 한 번 출발하면 도시 2개를 순서대로 들러야 한다. 배달 주문 하나는 도시 3개의 튜플 (A,B,C)(A, B, C)로 나타낸다. 곰곰이는 음식점이 있는 AA 도시에서 출발해 최단 경로로 BB 도시까지 이동하고, 다시 BB 도시에서 최단 경로로 CC 도시까지 이동한다. 곰곰이의 나라는 트리 형태여서, NN개의 도시가 N−1N-1개의 양방향 도로로 이어져 연결 그래프를 이룬다.

치킨을 좋아하는 곰곰이는 기회가 될 때마다 닭 다리를 사려고 한다. 이동 중에 들르는 도시에서 닭 다리를 살 수 있으며, 각 도시에서는 최대 한 개까지 살 수 있다. 배달 주문을 완료하는 시점에는 닭 다리가 정확히 두 개 있어야 한다.

곰곰이는 배달 주문을 처리할 때마다 닭 다리를 산 도시의 순서쌍을 노트에 적는다. 예를 들어 3번 도시에서 닭 다리를 산 뒤 1번 도시에서 닭 다리를 샀다면 (3,1)(3, 1)로 적는다.

각 주문에서 만들 수 있는 순서쌍의 개수를 구하라.

입력

첫째 줄에 도시의 개수 NN과 배달 주문의 개수 Q (1≤N,Q≤100 000)Q\ (1 \leq N, Q \leq 100\,000)가 공백으로 구분되어 주어진다.

둘째 줄부터 N−1N-1개의 줄에 걸쳐 정수 uu와 vv가 공백으로 구분되어 주어진다. 이는 uu 도시와 vv 도시를 잇는 양방향 도로가 있다는 뜻이다. (1≤u,v≤N)(1 \leq u, v \leq N)

N+1N+1째 줄부터 QQ개의 줄에 걸쳐 배달 주문 (A,B,C)(A, B, C)의 정수 A,B,CA, B, C (1≤A,B,C≤N)(1 \le A, B, C \le N)가 공백으로 구분되어 주어진다.

출력

QQ개의 줄에 걸쳐 각 배달 주문에서 만들 수 있는 순서쌍의 개수를 출력한다.

예제2

  1. 예제 1

    입력
    5 3
    1 2
    2 3
    3 4
    3 5
    1 5 4
    1 1 1
    2 3 4
    
    예상 출력
    11
    0
    3
    
  2. 예제 2

    입력
    8 5
    1 2
    2 3
    3 4
    3 5
    6 4
    5 7
    7 8
    6 1 2
    4 3 1
    7 8 8
    3 1 8
    5 4 2
    
    예상 출력
    11
    6
    1
    18
    7