만드는 중입니다

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

Jiry Matchings

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

요약
가중치가 있는 트리에서 간선 k개로 이루어진 매칭의 최대 가중치 합을 k가 1부터 n-1까지인 각 경우마다 구합니다. 매칭이 없으면 ?를 출력합니다.
난이도

어려움10점 중 8점

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

문제

Ruyi Ji에게는 정점이 11부터 nn까지 번호로 구분되는 트리가 있고, 각 간선에는 가중치가 있다.

각 k≤n−1k \le n - 1에 대해, 간선을 kk개 가지는 매칭 중 가중치 합이 가장 큰 값을 구한다. 간선이 kk개인 매칭이 존재하지 않으면 "?"를 출력한다.

입력

첫 줄에 정점의 수 nn이 주어진다 (2≤n≤2000002 \le n \le 200000).

다음 n−1n - 1개의 줄에는 세 정수 uiu_i, viv_i, wiw_i가 주어진다 (1≤ui,vi≤n1 \le u_i, v_i \le n, ui≠viu_i \ne v_i, −109≤wi≤109-10^9 \le w_i \le 10^9). 이는 정점 uiu_i와 viv_i를 잇고 가중치가 wiw_i인 간선을 뜻한다. 주어지는 그래프는 트리임이 보장된다.

출력

n−1n - 1개의 정수를 출력한다. k=1,2,…,n−1k = 1, 2, \ldots, n - 1개의 간선을 가지는 매칭의 가중치 합 중 최댓값이다. 해당하는 매칭이 없는 kk에는 "?"를 출력한다.

힌트

첫 번째 입력 예에서 k=1k = 1일 때는 가중치 55인 간선 (2,3)(2, 3)을 고른다. k=2k = 2일 때는 간선 (2,4)(2, 4)와 (3,5)(3, 5)를 고르며, 가중치 합은 66이다. 이보다 많은 간선을 가지는 매칭은 없다.

예제3

  1. 예제 1

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

    입력
    10
    2 8 -5
    5 10 5
    3 4 -5
    1 6 5
    3 9 5
    1 7 -3
    4 8 -5
    10 8 -5
    1 8 -3
    
    예상 출력
    5 10 15 10 ? ? ? ? ?
    
  3. 예제 3

    입력
    2
    1 2 35
    
    예상 출력
    35