문제 100
선행 작업 스케줄링
$N$개의 작업이 주어진다. 작업 $i$의 처리 시간은 $A_i$, 가중치는 $B_i$이다.
작업은 시각 $0$부터 한 번에 하나씩 처리하며, 시작한 작업은 중단할 수 없다. 작업 $1$을 제외한 모든 작업에는 부모 작업이 하나씩 지정되어 있고, 부모 작업이 완료되어야 해당 작업을 시작할 수 있다. 이 선행 관계는 작업 $1$을 루트로 하는 트리를 이룬다.
작업 $i$의 완료 시각을 $C_i$라 할 때, $\sum_{i=1}^{N} B_i C_i$의 최솟값을 구해보자.
입력
첫 번째 줄에 정수 $N$이 주어진다. $(1 \le N \le 200\,000)$
두 번째 줄에 $N$개의 정수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. $(0 \le A_i \le 1\,000)$
세 번째 줄에 $N$개의 정수 $B_1, B_2, \cdots, B_N$이 공백으로 구분되어 주어진다. $(0 \le B_i \le 1\,000)$
$N \ge 2$라면 네 번째 줄에 각 작업 $i$의 부모 작업 번호 $P_2, P_3, \cdots, P_N$이 공백으로 구분되어 주어진다. $(1 \le P_i \le N; P_i \ne i)$
출력
가중 완료 시각의 합의 최솟값을 출력한다.
예제 입력 1
3 1 2 3 5 3 4 1 1
예제 출력 1
38
예제 입력 2
4 3 1 2 1 1 8 2 9 4 4 1
예제 출력 2
93
노트
첫 번째 예제에서 작업을 $1, 2, 3$ 순서로 처리하면 완료 시각은 $1, 3, 6$이고 가중 완료 시각의 합은 $38$이다.
두 번째 예제에서 작업을 $1, 4, 2, 3$ 순서로 처리하면 최솟값 $93$을 얻는다.