C. Дейкстра без кучи: обратно
3000 мс · 256 МБ · всё или ничего
Как классная задача C, но найдите расстояния до вершины 1 из каждой вершины, а не от неё.
Отдельного алгоритма для этого нет и не нужно. Разверните все рёбра — то есть транспонируйте матрицу, — и запустите ту же Дейкстру за из вершины 1. Расстояние от вершины 1 в развёрнутом графе равно расстоянию до вершины 1 в исходном.
Транспонирование матрицы — это b[j][i] = a[i][j]. Легко перепутать индексы; проверяйте на примере, где ответ несимметричен.
Формат ввода
Первая строка содержит число ().
Далее идут строк по чисел — матрица смежности ориентированного графа. означает отсутствие ребра, вес не превосходит , на главной диагонали нули.
Формат вывода
Одна строка из чисел: расстояния до вершины 1 или .
Примеры
ввод
4 0 1 -1 4 -1 0 2 -1 -1 -1 0 -1 -1 -1 5 0
вывод
0 -1 -1 -1
Войдите, чтобы отправлять решения.