SOJ ONLINE JUDGE

문제 100

선행 작업 스케줄링

내 상태
미제출
난이도
100번 문제 난이도 보기
Diamond II
출제자
rlatjwls7882
시간 제한
1000 ms
메모리 제한
1024 MB
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$을 얻는다.

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.