고양이 소개팅

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

요약
루트 트리에서 각 굴에 암컷 또는 수컷 고양이가 살고 수컷은 낙하 한도 내에서 아래로 내려갈 수 있을 때, 짝지을 수 있는 최대 커플 수를 구한다.
난이도

어려움10점 중 8점

유형
DFS, 그리디, 정렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

류트나라에는 거대한 캣타워가 있다. 캣타워는 루트 있는 트리 구조를 이룬다. 따라서 캣타워에는 1번부터 n번까지 번호가 붙은 n개의 보금자리와 보금자리를 연결하는 n-1개의 통로가 있다. 캣타워 맨 위에는 항상 1번 보금자리가 있다. 캣타워에 사는 고양이는 아래쪽 통로를 따라 살던 보금자리에서 다른 보금자리로 떨어질 수 있다. 고양이가 통로를 타고 올라갈 수는 없다. 캣타워가 루트 있는 트리 구조이므로, 맨 위 보금자리를 제외한 임의의 보금자리로 곧바로 떨어질 수 있는 통로는 정확히 하나 존재한다. 또한 어떤 보금자리에서 다른 보금자리로 떨어질 수 있다면 그 경로는 유일하며, 모든 보금자리는 통로로 이어져 있다. i번 보금자리에는 암컷 또는 수컷 고양이가 cic_i마리 살고 있다. i번 보금자리로 곧바로 떨어질 수 있는 통로의 길이는 did_i이다. 한 보금자리에서 다른 보금자리로 이동하는 경로의 길이는 통로를 두 번 이상 지나지 않으면서 이동할 때 지나게 되는 모든 통로 길이의 합이다.

고양이들은 오늘 단체로 소개팅을 하려고 한다. 소개팅 한 쌍은 암컷 고양이 한 마리와 수컷 고양이 한 마리가 만나서 이뤄진다. 소개팅에 가기 위해 수컷 고양이는 아래쪽 통로를 통해 이동할 수 있는 보금자리로 뛰어내릴 수 있다. 공중 곡예비행의 대가라고 불리는 고양이들도 너무 많이 떨어지면 다치므로, i번 보금자리에 사는 고양이는 원래 살던 보금자리로부터 경로의 길이가 viv_i를 초과하는 정점으로는 뛰어내리지 않기로 했다. 시장 leejseo는 가능한 많은 쌍의 소개팅이 이뤄지길 원한다. leejseo는 소개팅 횟수를 최대화할 방법을 고민하다가 당신에게 그 작업을 맡기기로 했다. 캣타워의 구조와 고양이 정보가 주어질 때, 성사될 수 있는 소개팅 횟수의 최댓값을 구하시오.

입력

첫 번째 줄에 캣타워 내 보금자리의 개수 nn (1≤n≤200,0001 \le n \le 200{,}000)이 주어진다.

두 번째 줄에 1번 보금자리부터 n번 보금자리에 사는 고양이의 수 cic_i (1≤ci≤1081 \le c_i \le 10^8)가 차례대로 주어진다.

세 번째 줄에 1번 보금자리부터 n번 보금자리에 사는 고양이가 떨어질 수 있는 최대 높이 viv_i가 차례대로 주어진다. viv_i는 -1이거나 1≤vi≤1081 \le v_i \le 10^8이다. viv_i가 1 이상의 정수라면 i번 보금자리에는 cic_i마리의 수컷 고양이가 산다. viv_i가 -1이라면 그 보금자리에는 cic_i마리의 암컷 고양이가 산다.

네 번째 줄에 2번 보금자리부터 n번 보금자리까지, 그 보금자리로 곧바로 떨어질 수 있는 보금자리 aia_i (1≤ai≤n1 \le a_i \le n)가 차례대로 주어진다.

다섯 번째 줄에 2번 보금자리부터 n번 보금자리까지, 그 보금자리로 곧바로 떨어질 수 있는 통로의 길이 did_i (1≤di≤1081 \le d_i \le 10^8)가 차례대로 주어진다.

출력

첫 번째 줄에 성사될 수 있는 소개팅 횟수의 최댓값을 출력한다.

예제1

  1. 예제 1

    입력
    5
    5 4 3 6 2
    -1 3 5 -1 5
    3 1 2 1
    4 1 3 2
    
    예상 출력
    4