만드는 중입니다

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

정기 모임 4

시간 제한4초메모리 제한512 MB

요약
가중치가 있는 트리에서 간선 E와 거리 D가 주어질 때, 간선 중점까지의 거리가 D인 정점의 개수를 구합니다.
난이도

보통10점 중 7점

유형
분할 정복, 트리, DFS, 정렬
정답자
아직 제출이 없습니다

문제

정점이 NN개인 트리가 주어진다. 각 정점은 11번부터 NN번까지 차례대로 번호가 붙어 있다. ii번째 간선은 AiA_i번 정점과 BiB_i번 정점을 잇고, 가중치는 양의 짝수 CiC_i이다. (1≤i<N)(1 \le i < N)

트리에서 두 정점 사이의 거리는 두 정점을 잇는 유일한 단순 경로에 포함된 간선 가중치의 합이다. 정점과 간선 사이의 거리는 그 정점에서 간선의 양끝 정점까지 거리의 평균이다. 간선의 가중치가 모두 양의 짝수이므로, 임의의 정점과 간선 사이의 거리는 양의 정수이다.

트리의 각 정점에 사는 사람들이 QQ번의 모임을 열려고 한다. 2년 반 동안 이어진 사회적 거리두기가 해제되어, 사람들은 집을 나와 오랜만에 간선에서 만날 예정이다. 그러나 추운 겨울에 간선에서 다른 사람을 오래 기다리는 것은 힘들고 귀찮은 일이다. 그래서 간선과의 거리가 같은 정점에 사는 사람끼리만 미리 연락한 뒤, 각자의 정점에서 동시에 출발하여 그 간선에서 동시에 만난다.

ii번째 모임에는 간선 EiE_i와의 거리가 DiD_i인 정점에 사는 모든 사람이 참석한다. (1≤i≤Q)(1 \le i \le Q) 이때 모이는 인원을 구하라.

입력

첫 번째 줄에 트리의 정점 개수 NN과 모임 횟수 QQ가 공백으로 구분되어 주어진다.

두 번째 줄부터 N−1N-1개의 줄에 트리의 간선 정보가 주어진다. (1+i)(1+i)번째 줄에는 자연수 AiA_i, BiB_i, CiC_i가 공백으로 구분되어 주어진다. (1≤i<N)(1 \le i < N) 이는 AiA_i번 정점과 BiB_i번 정점을 가중치 CiC_i인 간선으로 잇는다는 뜻이다.

(N+1)(N+1)번째 줄부터 QQ개의 줄에 모임 정보가 주어진다. (N+i)(N+i)번째 줄에는 자연수 EiE_i와 DiD_i가 공백으로 구분되어 주어진다. (1≤i≤Q)(1 \le i \le Q)

출력

QQ개의 줄에 걸쳐, ii번째 줄에 ii번째 모임에 모이는 인원을 출력한다.

제한

  • 2≤N≤1052 \le N \le 10^5
  • 1≤Q≤1051 \le Q \le 10^5
  • 1≤Ai,Bi≤N1 \le A_i, B_i \le N (1≤i<N)(1 \le i < N)
  • 2≤Ci≤1042 \le C_i \le 10^4, CiC_i는 양의 짝수 (1≤i<N)(1 \le i < N)
  • 1≤Ei<N1 \le E_i < N (1≤i≤Q)(1 \le i \le Q)
  • 1≤Di≤1091 \le D_i \le 10^9 (1≤i≤Q)(1 \le i \le Q)

예제1

  1. 예제 1

    입력
    3 3
    1 2 2
    2 3 2
    1 1
    2 1
    1 3
    
    예상 출력
    2
    2
    1