B. На какой фазе установилось
2000 мс · 256 МБ · всё или ничего
Как классная задача B, но для каждой вершины выведите номер фазы, после которой её расстояние перестало меняться.
Для источника это ноль. Для недостижимых вершин выведите . Для остальных — номер последней фазы, на которой значение изменилось; фазы нумеруются с единицы.
Считать это просто: при каждом улучшении записывать в вершину номер текущей фазы. Никакого второго прохода не нужно.
Полезно посмотреть на распределение: обычно почти все вершины устаканиваются за одну-две фазы, а хвост из нескольких вершин тянет весь алгоритм. Именно поэтому ранняя остановка так помогает.
Формат ввода
Первая строка содержит числа () и ().
Далее идут строк с рёбрами: начало, конец и вес (). Отрицательных циклов нет.
Формат вывода
Одна строка из чисел.
Примеры
ввод
6 4 1 2 10 2 3 10 1 3 100 4 5 -10
вывод
0 1 1 -1 -1 -1
Войдите, чтобы отправлять решения.