EduBrick

O. Сумма длин путей из каждой вершины

1000 мс · 256 МБ · всё или ничего

То же дерево, но теперь для каждой вершины vv нужна сумма расстояний от неё до всех остальных.

Считать nn раз обходом - это O(n2)O(n^2). Правильный приём называется сменой корня и стоит два обхода.

Формат ввода

В первой строке - число вершин nn (1≤n≤1051 \le n \le 10^5).

В следующих n−1n-1 строках - тройки vv, uu, ww: ребро между vv и uu веса ww (0≤w≤1060 \le w \le 10^6).

Формат вывода

Выведите nn чисел: для каждой вершины сумму расстояний до всех остальных.

Примеры

ввод
3
1 2 1
1 3 3
вывод
4 5 7
ввод
7
1 2 1
3 4 1
7 6 1
7 5 1
7 1 1
1 4 1
вывод
9 14 17 12 15 15 10
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.