아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

구슬이 서말이라도 꿰어야 보배

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

요약
빨간 실로 새 구슬을 다는 추가와 빨간 실을 끊어 파란 실 두 개로 나누는 삽입으로 트리를 만들 때 파란 실 길이 합이 최대가 되도록 합니다.
난이도

어려움10점 중 8점

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

문제

"구슬 꿰기" 게임에서 실은 빨간색과 파란색 두 가지가 있습니다. 구슬은 1번부터 nn번까지 번호가 붙어 있습니다. 게임은 구슬 하나로 시작하며, 아래 연산으로 구슬을 추가합니다.

  • Append(w, v): 새 구슬 ww를 기존 구슬 vv에 빨간 실로 연결합니다.
  • Insert(w, u, v): 빨간 실로 연결된 uu와 vv 사이에 새 구슬 ww를 넣습니다. 기존 빨간 실 uu-vv를 제거하고, 파란 실 uu-ww, ww-vv 두 개로 바꿉니다.

모든 실은 길이를 가집니다. 게임이 끝났을 때 점수는 파란 실 길이의 합입니다.

최종 연결 상태(구슬 쌍과 실 길이만 주어지고 색은 주어지지 않음)가 주어집니다. 이 상태를 만들 수 있는 모든 방법 중 최종 점수의 최댓값을 구하세요.

입력

첫째 줄에 구슬 수 nn (1≤n≤200 0001 \le n \le 200\,000).

다음 n−1n-1줄에 aia_i, bib_i, cic_i (1≤ai<bi≤n1 \le a_i < b_i \le n, 1≤ci≤10 0001 \le c_i \le 10\,000). aia_i와 bib_i는 연결된 구슬, cic_i는 실 길이.

출력

가능한 최종 점수 중 최댓값을 출력한다.

힌트

예제처럼 3번 구슬에서 시작해 5와 연결한 뒤 1을 3-5 사이에 넣고, 2와 4를 1에 붙이면 60점을 얻을 수 있습니다. 더 큰 점수는 없습니다.

예제6

  1. 예제 1

    입력
    5
    1 2 10
    1 3 40
    1 4 15
    1 5 20
    
    예상 출력
    60
    
  2. 예제 2

    입력
    2
    1 2 7
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3
    1 2 5
    2 3 8
    
    예상 출력
    13
    
  4. 예제 4

    입력
    4
    1 2 10
    1 3 20
    1 4 30
    
    예상 출력
    50
    
  5. 예제 5

    입력
    6
    1 2 1
    2 3 2
    3 4 3
    4 5 4
    5 6 5
    
    예상 출력
    14
    
  6. 예제 6

    입력
    7
    1 2 100
    1 3 50
    2 4 25
    2 5 75
    3 6 10
    3 7 90
    
    예상 출력
    315