구슬이 서말이라도 꿰어야 보배
시간 제한1초메모리 제한128 MB
빨간 실로 새 구슬을 다는 추가와 빨간 실을 끊어 파란 실 두 개로 나누는 삽입으로 트리를 만들 때 파란 실 길이 합이 최대가 되도록 합니다.
문제
"구슬 꿰기" 게임에서 실은 빨간색과 파란색 두 가지가 있습니다. 구슬은 1번부터 번까지 번호가 붙어 있습니다. 게임은 구슬 하나로 시작하며, 아래 연산으로 구슬을 추가합니다.
- Append(w, v): 새 구슬 를 기존 구슬 에 빨간 실로 연결합니다.
- Insert(w, u, v): 빨간 실로 연결된 와 사이에 새 구슬 를 넣습니다. 기존 빨간 실 -를 제거하고, 파란 실 -, - 두 개로 바꿉니다.
모든 실은 길이를 가집니다. 게임이 끝났을 때 점수는 파란 실 길이의 합입니다.
최종 연결 상태(구슬 쌍과 실 길이만 주어지고 색은 주어지지 않음)가 주어집니다. 이 상태를 만들 수 있는 모든 방법 중 최종 점수의 최댓값을 구하세요.
입력
첫째 줄에 구슬 수 ().
다음 줄에 , , (, ). 와 는 연결된 구슬, 는 실 길이.
출력
가능한 최종 점수 중 최댓값을 출력한다.
힌트
예제처럼 3번 구슬에서 시작해 5와 연결한 뒤 1을 3-5 사이에 넣고, 2와 4를 1에 붙이면 60점을 얻을 수 있습니다. 더 큰 점수는 없습니다.