만드는 중입니다

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

겨울철 운전

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

요약
각 도로의 방향을 정해 한 시민이 다른 시민의 도시로 이동할 수 있는 시민 쌍의 수를 최대화합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

북쪽의 추운 지방에 11번부터 NN번까지 번호가 붙은 도시 NN개가 있다. 도시 ii에는 AiA_i명의 시민이 살고 있다. 도로는 N−1N-1개이며 22번부터 NN번까지 번호가 붙어 있다. 도로 jj는 도시 jj와 도시 PjP_j를 잇고, Pj<jP_j < j이다. 어떤 도시에 연결된 도로도 최대 3636개이다. 겨울에는 위험한 도로 상태 때문에 모든 도로가 일방통행 도로가 된다. 도로 jj는 도시 jj에서 도시 PjP_j로 가거나 도시 PjP_j에서 도시 jj로 가는 일방통행 도로 중 하나가 된다. 모든 시민은 다른 모든 시민에게 명절 카드를 보내고 싶어 한다. 시민 xx는 자신이 사는 도시에서 시민 yy가 사는 도시까지 일방통행 도로만 따라 이동할 수 있으면 yy에게 카드를 보낼 수 있다. 모든 도로를 일방통행 도로로 바꾼 뒤 보낼 수 있는 카드 수의 최댓값은 얼마인가?

입력

첫 줄에 정수 NN이 주어진다 (2≤N≤2000002 \le N \le 200000). 둘째 줄에는 정수 A1,A2,…,ANA_1, A_2, \ldots, A_N이 주어진다 (1≤Ai≤100001 \le A_i \le 10000). 셋째 줄에는 정수 P2,P3,…,PNP_2, P_3, \ldots, P_N이 주어진다 (1≤Pj≤j1 \le P_j \le j). DD를 어떤 도시에 연결된 도로 수의 최댓값이라 할 때, D≤36D \le 36이 보장된다.

출력

모든 도로를 일방통행 도로로 바꾼 뒤 보낼 수 있는 카드 수의 최댓값을 정수 하나로 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    4
    3 3 4 1
    1 2 1
    
    예상 출력
    67