만드는 중입니다

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

왕국 보호

시간 제한1초메모리 제한2048 MB

요약
간선마다 위험 지점이 놓인 나무 모양 도로망에서 길이가 w 이하인 최단 경로 하나가 덮을 수 있는 위험 지점의 최대 개수를 구합니다.
난이도

어려움10점 중 8점

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

문제

CPIC (Committee for Public Infrastructure Conservation)의 왕국에는 1부터 n까지 번호가 매겨진 마을 n개가 있으며, 마을들은 n - 1개의 도로로 연결되어 트리 구조를 이룹니다. 각 도로는 두 마을을 잇고 양의 길이를 가집니다. i번째 도로는 마을 i + 1과 마을 p_i (1≤pi≤i1 \le p_i \le i)를 잇고, 길이는 l_i입니다. 험한 지형과 과거 사고 때문에 도로 위의 일부 지점은 위험 지점으로 지정되어 있습니다. i번째 도로에는 마을 p_i에서 정수 거리 x_{i,1}, x_{i,2}, \dots, x_{i,k_i}만큼 떨어진 위치에 위험 지점 k_i개가 있으며, 0<xi,1<xi,2<⋯<xi,ki<li0 < x_{i,1} < x_{i,2} < \cdots < x_{i,k_i} < l_i를 만족합니다. CPIC 안전위원회는 마을을 포함해 도로 위의 임의의 두 지점을 골라 그 사이의 최단 경로를 확보함으로써 여행자를 보호하려 합니다. 확보한 경로는 끝점을 포함해 그 위에 있는 모든 위험 지점을 덮으며, 경로 길이는 주어진 길이 w를 넘을 수 없습니다. 도로망, 위험 지점의 위치, 그리고 w가 주어질 때, 두 지점을 골라 길이가 w 이하인 최단 경로를 확보하면서 덮을 수 있는 위험 지점의 최대 개수를 구하십시오.

입력

첫 줄에는 두 정수 n과 w (2≤n≤2500002 \le n \le 250000, 1≤w≤10181 \le w \le 10^{18})가 주어집니다. n은 마을 수이고, w는 확보할 경로의 최대 길이입니다. 이어지는 n - 1개의 줄 중 i번째 줄은 세 정수 p_i, l_i, k_i (1≤pi≤i1 \le p_i \le i, 1≤li≤10121 \le l_i \le 10^{12}, ki≥0k_i \ge 0)로 시작합니다. p_i는 마을 i + 1과 연결된 마을, l_i는 도로 길이, k_i는 도로 위 위험 지점의 수입니다. k_i > 0이면 같은 줄에 이어서 정수 k_i개 x_{i,1}, \dots, x_{i,k_i} (0<xi,1<⋯<xi,ki<li0 < x_{i,1} < \cdots < x_{i,k_i} < l_i)가 주어지며, 각 값은 마을 p_i에서 해당 위험 지점까지의 거리입니다. 모든 도로의 위험 지점 수 합 k_1 + \cdots + k_{n-1}은 10^6을 넘지 않습니다.

출력

한 줄만 출력합니다. 이 줄에는 도로 위 임의의 두 지점 사이에서, 길이가 w 이하인 최단 경로로 덮을 수 있는 위험 지점 개수의 최댓값을 적습니다.

예제3

  1. 예제 1

    입력
    4 2
    1 2 1 1
    1 610 2 1 100
    3 2001 0
    
    예상 출력
    2
    
  2. 예제 2

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

    입력
    8 6
    1 2 1 1
    1 3 2 1 2
    2 1 0
    3 4 1 2
    2 3 1 1
    1 4 1 3
    3 4 1 1
    
    예상 출력
    4