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

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

트리에서 가장 먼 정점까지의 거리

면접 대비

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

요약
가중 트리의 각 정점에서 가장 먼 정점까지의 거리를 출력합니다.
난이도

보통10점 중 6점

유형
트리, DFS
정답자
아직 제출이 없습니다

문제

가중 트리는 각 간선에 그 간선의 길이를 나타내는 수가 붙어 있는 트리다. 모든 길이는 양수다.

트리의 각 정점에 대해, 그 정점에서 다른 정점까지의 거리 중 가장 큰 값을 구하라. 두 정점 사이의 거리는 두 정점을 잇는 경로에 놓인 간선 길이의 합이다.

입력

첫째 줄에 정점의 개수 NN이 주어진다. (2≤N≤500002 \le N \le 50000)

다음 N−1N-1개의 줄에 간선이 한 줄에 하나씩 주어진다. 각 줄은 양의 정수 세 개로 이루어지며, 앞의 두 수는 그 간선이 잇는 두 정점의 번호이고 (11 이상 NN 이하), 세 번째 수는 그 간선의 길이다. 모든 간선 길이의 합은 231−12^{31}-1을 넘지 않는다. 입력은 항상 올바른 트리를 나타낸다.

출력

정확히 NN개의 줄을 출력한다. kk번째 줄에는 정점 kk에서 가장 먼 정점까지의 거리를 출력한다. (k=1,2,…,Nk = 1, 2, \dots, N)

예제4

  1. 예제 1

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

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

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

    입력
    7
    1 2 5
    1 3 9
    1 4 2
    1 5 9
    1 6 1
    1 7 4
    
    예상 출력
    9
    14
    18
    11
    18
    10
    13