내 왼손에는 흑염룡이 잠들어 있다

가중치가 있는 트리에서 각 정점마다 가장 먼 다른 정점까지의 거리를 구한다.

보통6트리DFS동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

철수는 왼손을 언제나 붕대로 감고 다닌다. 붕대를 풀면 흑염룡이 날뛰기 때문이다.

어느 날 철수가 사는 나라에 태풍이 몰아쳤다. 태풍 탓에 걷잡을 수 없이 날뛰는 흑염룡을 잠재우려고 철수는 긴 여행을 떠나기로 했다. 흑염룡을 잠재우려면 태풍에서 최대한 멀어져야 하므로, 지금 사는 나라에서 가장 먼 나라까지 가야 한다.

철수가 사는 세계는 NN개의 나라로 이루어져 있고, 나라를 잇는 도로가 N1N-1개 있다. 각 도로는 두 나라를 양방향으로 잇고, 어느 나라에서 출발하든 나머지 모든 나라로 가는 경로가 있다. 두 나라 사이의 거리는 그 경로에 놓인 도로 길이의 합이다.

철수가 ii번 나라에 산다고 할 때 여행의 목적지가 되는 나라까지의 거리를 D[i]D[i]라고 하자. 즉 D[i]D[i]ii번 나라에서 다른 나라까지 가는 거리 중 가장 큰 값이다. 1iN1 \le i \le N인 모든 ii에 대해 D[i]D[i]를 구하자.

입력

첫째 줄에 나라의 수 NN (2N500002 \le N \le 50000)이 주어진다.

둘째 줄부터 N1N-1개의 줄에 도로 정보가 한 줄에 하나씩 주어진다. 각 줄은 세 정수 from, to, length로 이루어지고, from번 나라와 to번 나라를 잇는 길이 length인 도로가 있다는 뜻이다. fromto11 이상 NN 이하이고 서로 다르며, length11 이상 4000040000 이하의 정수이다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 D[i]D[i]의 값을 출력한다.