E. Все попарные расстояния
Тот же Флойд, но выводится вся матрица расстояний, а не одно число.
Задача техническая, и ценность её в том, чтобы один раз аккуратно написать обработку бесконечности. Два надёжных способа:
Заводить INF заведомо больше любого ответа, но так, чтобы INF + INF не переполнилось. При и весах до любое конечное расстояние не больше ; удобное значение — миллиард, а тип long long или int — на ваш выбор, лишь бы сложение двух INF не вышло за диапазон.
Просто не складывать бесконечности: пропускать , для которого уже бесконечно. Так делает эталон, и это заодно ускоряет внутренний цикл.
Второй способ надёжнее: он не зависит от того, угадали ли вы величину INF.
Формат ввода
Первая строка содержит число ().
Далее идут строк по чисел: означает отсутствие ребра. Вес не превосходит , на главной диагонали нули. Граф ориентированный.
Формат вывода
строк по чисел: кратчайшие расстояния или , если пути нет.
Примеры
4 0 1 -1 4 -1 0 2 -1 -1 -1 0 -1 -1 -1 5 0
0 1 3 4 -1 0 2 -1 -1 -1 0 -1 -1 -1 5 0