MooTube (Gold)
시간 제한2초메모리 제한512 MB
가중치 트리에서 두 영상 사이의 USADO는 경로 위 간선 가중치의 최솟값이다. 각 질의 (K, v)마다 v와의 USADO가 K 이상인 정점의 수를 구한다.
문제
농부 존은 남는 시간에 동영상 공유 서비스 MooTube를 만들었다. MooTube에서 존의 소들은 재미있는 동영상을 서로 나눠 본다. 소들이 이미 올려 둔 동영상은 개이고, 1번부터 번까지 번호가 붙어 있다. 하지만 존은 소가 마음에 들 만한 새 동영상을 어떻게 찾게 해 줄지 아직 좋은 방법을 떠올리지 못했다.
존은 동영상마다 연관 동영상 목록을 만들기로 했다. 그러면 소는 지금 보고 있는 동영상과 가까운 동영상을 추천받는다.
두 동영상이 얼마나 가까운지는 존이 만든 USADO라는 값으로 잰다. 존은 동영상 쌍 개를 골라 그 쌍의 USADO를 직접 계산했다. 이 개의 쌍은 어떤 동영상에서 다른 어떤 동영상으로 가는 경로가 정확히 하나만 존재하도록 골랐다. 동영상을 정점으로 보고 직접 잰 쌍을 간선으로 보면 전체가 하나의 트리다. 직접 재지 않은 두 동영상의 USADO는 둘을 잇는 경로에 놓인 간선의 USADO 중 최솟값이다.
존은 동영상 하나를 정하고 값 를 정한 다음, 그 동영상과의 USADO가 이상인 동영상을 모두 추천한다. 추천이 너무 많으면 소가 일을 못 하니 를 잘 골라야 한다. 와 동영상 번호가 주어질 때 추천되는 동영상이 몇 개인지 답하라.
입력
첫 줄에 동영상의 수 과 질문의 수 가 주어진다. (, )
다음 개의 줄에는 존이 직접 잰 값이 한 줄에 하나씩 주어진다. 각 줄은 세 정수 , , 로 이루어지며 (, ), 동영상 와 가 USADO 로 이어져 있다는 뜻이다.
다음 개의 줄에는 질문이 한 줄에 하나씩 주어진다. 각 줄은 두 정수 와 로 이루어지며 (, ), 일 때 동영상 를 보고 있는 소에게 추천되는 동영상이 몇 개인지 묻는다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 질문의 답을 출력한다.
힌트
예제에서 1번과 2번의 USADO는 3, 2번과 3번의 USADO는 2, 2번과 4번의 USADO는 4다. 여기서 1번과 3번의 USADO는 , 1번과 4번의 USADO는 , 3번과 4번의 USADO는 가 된다.
이고 2번 동영상을 볼 때 추천되는 동영상은 1번, 3번, 4번이다. 이고 1번 동영상을 볼 때는 추천되는 동영상이 없다. 이고 1번 동영상을 볼 때는 2번과 4번이 추천된다.