Олимпиадный тренинг

Задача . D. Лучший вес для ребра


Дан связный неориентированный взвешенный граф с n вершинами и m ребрами. Граф не содержит петель и мультиребер. Рассмотрим некоторое ребро с номером i. Для него определим наибольший возможный вес, который можно присвоить этому ребру, чтобы оно содержалось во всех минимальный покрывающих деревьях данного графа.

Требуется для каждого ребра посчитать максимальный вес по описанным правилам. При этом для каждого ребра ответ должен считаться независимо, то есть в графе может существовать максимум одно ребро с измененным весом.

Входные данные

В первой строке даны через пробел два целых положительных числа n и m (2 ≤ n ≤ 2·105, n - 1 ≤ m ≤ 2·105), где n и m — количество вершин и ребер графа соответственно.

В следующих m строках даны по три числа u, v и c (1 ≤ v, u ≤ n, v ≠ u, 1 ≤ c ≤ 109), означающие, что между вершинами u и v есть ребро с весом c.

Выходные данные

В единственной строке выведите через пробел искомые веса ребер в том порядке, в котором они заданы во входных данных. Если ребро при любом весе будет содержаться во всех покрывающих деревьях, выведите для него -1.


Примеры
Входные данныеВыходные данные
1 4 4
1 2 2
2 3 2
3 4 2
4 1 3
2 2 2 1
2 4 3
1 2 2
2 3 2
3 4 2
-1 -1 -1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя