아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

광부

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

요약
입구부터 방까지 지나는 터널 높이가 모두 광부 키 이상인 말단 방에 광부를 한 명씩 두어 동시에 채굴하는 인원을 최대로 구합니다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 트리
정답자
아직 제출이 없습니다

문제

한 부유한 국가는 자국의 금광 덕분에 큰 부를 쌓았다. 채굴량을 늘리기 위해 정부는 광부들을 특정 터널에 상시 배치하기로 했다.

이 나라의 모든 광산은 같은 구조로 되어 있다. 각 광산에는 입구가 정확히 하나 있으며, 방과 그 방들을 잇는 터널로 이루어진다. 입구에서 각 방으로 가는 경로는 (여러 터널과 다른 방을 거칠 수 있지만) 정확히 하나뿐이다. 따라서 광산은 트리 구조를 이룬다.

금 채굴은 다른 방과 정확히 하나만 연결된 방에서만 이루어진다. 다만 입구인 방은 다른 방 하나와만 연결되어 있더라도 채굴에 사용되지 않는다.

터널마다 높이가 다르다. 장비를 짊어진 광부는 몸을 숙일 수 없으므로, 터널의 높이가 자신의 키 이상일 때에만 그 터널을 지날 수 있다. 즉 광부는 입구에서 어떤 방까지 이르는 경로 위의 모든 터널 높이가 자신의 키 이상일 때에만 그 방에 도달할 수 있다.

방과 터널의 배치, 그리고 각 광부의 키가 주어질 때, 동시에 금을 채굴할 수 있는 광부 수의 최댓값을 구하는 프로그램을 작성하라. 한 방에는 최대 한 명의 광부만 들어갈 수 있다.

입력

첫 줄에 데이터 집합의 개수 TT (1≤T≤51 \le T \le 5)가 주어진다. 이어서 각 데이터 집합이 주어진다.

각 데이터 집합의 첫 줄에는 두 정수 nn, kk (3≤n≤2000003 \le n \le 200000, 1≤k≤n1 \le k \le n)가 주어진다. nn은 방의 개수(방은 11번부터 nn번까지 번호가 매겨진다)이고, kk는 입구인 방의 번호이다.

다음 n−1n-1개의 줄에는 터널 정보가 주어진다. 각 줄에는 세 정수 aa, bb, cc (1≤a<b≤n1 \le a < b \le n, 1≤c≤10001 \le c \le 1000)가 있으며, 이는 방 aa와 방 bb가 높이 cc인 터널로 연결되어 있음을 뜻한다. 어떤 방 쌍도 두 번 이상 주어지지 않는다.

그다음 줄에는 이 광산에 배정된 광부의 수 mm (1≤m≤2000001 \le m \le 200000)이 주어진다. 마지막 줄에는 광부들의 키를 나타내는 mm개의 양의 정수가 주어지며, 각 값은 10001000 이하이다.

출력

TT개의 줄을 출력한다. ii번째 줄에는 ii번째 데이터 집합의 답, 즉 동시에 금을 채굴할 수 있는 광부 수의 최댓값을 출력한다. 광부는 터널의 높이가 자신의 키 이상일 때에만 그 터널을 지날 수 있다.

예제1

  1. 예제 1

    입력
    3
    3 2 
    1 2 100
    2 3 150
    2
    139 100
    3 2
    1 2 100
    2 3 150
    2
    149 123
    3 1
    1 2 100
    2 3 100
    3
    50 50 50
    
    예상 출력
    2
    1
    1