import sys; input = sys.stdin.readline from collections import * N = int(input()); G = [{} for _ in range(N)]; D = [0]*N for _ in range(N): a, b, w = map(int, input().split()) G[a-1][b-1] = G[b-1][a-1] = w; D[a-1] += 1; D[b-1] += 1 Q = [i for i in range(N) if len(G[i])<2]; T = [{} for _ in range(N)]; M = [0]*N for u in Q: d = G[p:=min(G[u])].pop(u); T[p][u] = T[u][p] = d; M[p] = max(M[p], M[u]+d) if len(G[p]) == 1: Q += [p] c = next(i for i in range(N) if len(G[i])>1); C = []; u = c; p = -1 while 1: C += [u]; v = next(v for v in G[u] if v!=p); p, u = u, v if u == c: break K = len(C); W = [G[C[i]][C[(i+1)%K]] for i in range(K)]; S = [0] for i in range(2*K): S += [S[-1]+W[i%K]] s = S[K]; A = deque(); B = deque(); Z = [0]*K; p = a = b = 0 for i in range(K): h = p = max(p, i) while p+1 a: b, a, t = a, x, v elif x > b: b = x for v, w in T[u].items(): if P[v] == u: U[v] = w+max(0, U[u], (a, b)[v==t]) print(*[max(M[i], U[i]) for i in range(N)])