만드는 중입니다

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

조용한 생활관 만들기

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

요약
루트가 1인 트리 모양 건물에서 간선을 합치는 연산을 반복해, 서로 다른 건물에 있는 학생 중 도달 가능한 쌍의 수를 최소로 만드는 값을 구합니다.
난이도

보통10점 중 7점

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

문제

카카오 마법 학교는 독특한 건물 구조로 유명한데, 그중에서도 가장 특이한 것은 학생 생활관이다. 생활관은 NN개의 건물로 이루어져 있고, N−1N-1개의 도로가 건물 사이를 잇는다. 이 도로들은 모두 일방통행이다. 생활관에는 입구와 출구가 있으며, 입구에는 1번 건물이 있다. 1번 건물을 제외한 각 건물에는 그 건물로 들어오는 도로가 정확히 하나 있다. 1번 건물에서 일방통행 도로만 따라가면 모든 건물에 갈 수 있다. 모든 건물에서 출구로 가는 길도 있다. 다만 생활관 규칙이 엄격해서 밤에는 출구가 폐쇄된다.

라이언은 카카오 마법 학교에서 코딩 마법을 가르치는 교수이다. 요즘 그의 가장 큰 고민은 바로 옆 교수아파트에서 들리는 학생 생활관의 소음 때문에 잠을 이루지 못한다는 것이다. 생활관이 이렇게 시끄러운 이유는 많은 학생이 한 건물로 모이기 때문이다. 라이언은 'Union' 마법으로 원래 서로 오갈 수 있던 건물들을 그렇지 못하게 만들어, 학생들이 모이는 것을 막으려고 한다.

'Union' 마법은 한 도로의 도착점과 다른 도로의 출발점이 같을 때 두 도로를 이어 하나로 만드는 마법이다. 즉 건물 xx에서 yy로 가는 도로와 yy에서 zz로 가는 도로가 있으면, 두 도로는 사라지고 xx에서 zz로 가는 도로 하나가 생긴다. 이때 새 도로는 건물 yy를 지나지 않는다.

라이언의 목표는 생활관의 '시끄러운 정도'를 최소화하는 것이다. '시끄러운 정도'는 서로 다른 건물에 사는 학생 aa와 학생 bb에 대해, 학생 aa가 사는 건물에서 학생 bb가 사는 건물로 가는 경로가 존재하는 (a,b)(a, b) 쌍의 개수이다. 밤에는 출구가 폐쇄되므로 출구로 나갔다가 입구로 다시 들어오는 것은 불가능하다.

라이언은 'Union' 마법을 무제한으로 사용할 수 있다. 이때 시끄러운 정도의 가능한 최솟값을 구해 라이언을 도와주자.

입력

입력의 첫째 줄에는 생활관의 건물 개수 NN(2≤N≤200,0002 \le N \le 200,000)이 주어진다.

다음 줄에는 N−1N-1개의 수가 공백으로 구분되어 주어진다. 이 중 ii번째 수는 i+1i+1번 건물로 가는 일방통행 도로의 시작점 건물 번호이다.

다음 줄에는 각 건물에 사는 학생 수를 나타내는 NN개의 수가 공백으로 구분되어 주어진다. 한 건물에 사는 학생 수는 1 이상 10610^6 이하이다.

출력

첫째 줄에 시끄러운 정도의 가능한 최솟값을 출력한다.

예제1

  1. 예제 1

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