조용한 생활관 만들기
시간 제한4초메모리 제한768 MB
루트가 1인 트리 모양 건물에서 간선을 합치는 연산을 반복해, 서로 다른 건물에 있는 학생 중 도달 가능한 쌍의 수를 최소로 만드는 값을 구합니다.
문제
카카오 마법 학교는 독특한 건물 구조로 유명한데, 그중에서도 가장 특이한 것은 학생 생활관이다. 생활관은 개의 건물로 이루어져 있고, 개의 도로가 건물 사이를 잇는다. 이 도로들은 모두 일방통행이다. 생활관에는 입구와 출구가 있으며, 입구에는 1번 건물이 있다. 1번 건물을 제외한 각 건물에는 그 건물로 들어오는 도로가 정확히 하나 있다. 1번 건물에서 일방통행 도로만 따라가면 모든 건물에 갈 수 있다. 모든 건물에서 출구로 가는 길도 있다. 다만 생활관 규칙이 엄격해서 밤에는 출구가 폐쇄된다.
라이언은 카카오 마법 학교에서 코딩 마법을 가르치는 교수이다. 요즘 그의 가장 큰 고민은 바로 옆 교수아파트에서 들리는 학생 생활관의 소음 때문에 잠을 이루지 못한다는 것이다. 생활관이 이렇게 시끄러운 이유는 많은 학생이 한 건물로 모이기 때문이다. 라이언은 'Union' 마법으로 원래 서로 오갈 수 있던 건물들을 그렇지 못하게 만들어, 학생들이 모이는 것을 막으려고 한다.
'Union' 마법은 한 도로의 도착점과 다른 도로의 출발점이 같을 때 두 도로를 이어 하나로 만드는 마법이다. 즉 건물 에서 로 가는 도로와 에서 로 가는 도로가 있으면, 두 도로는 사라지고 에서 로 가는 도로 하나가 생긴다. 이때 새 도로는 건물 를 지나지 않는다.

라이언의 목표는 생활관의 '시끄러운 정도'를 최소화하는 것이다. '시끄러운 정도'는 서로 다른 건물에 사는 학생 와 학생 에 대해, 학생 가 사는 건물에서 학생 가 사는 건물로 가는 경로가 존재하는 쌍의 개수이다. 밤에는 출구가 폐쇄되므로 출구로 나갔다가 입구로 다시 들어오는 것은 불가능하다.
라이언은 'Union' 마법을 무제한으로 사용할 수 있다. 이때 시끄러운 정도의 가능한 최솟값을 구해 라이언을 도와주자.
입력
입력의 첫째 줄에는 생활관의 건물 개수 ()이 주어진다.
다음 줄에는 개의 수가 공백으로 구분되어 주어진다. 이 중 번째 수는 번 건물로 가는 일방통행 도로의 시작점 건물 번호이다.
다음 줄에는 각 건물에 사는 학생 수를 나타내는 개의 수가 공백으로 구분되어 주어진다. 한 건물에 사는 학생 수는 1 이상 이하이다.
출력
첫째 줄에 시끄러운 정도의 가능한 최솟값을 출력한다.