Три правки в одной программе
Форд–Беллман не знает слова «короче». Он знает «лучше». Скажем ему, что лучше — это больше.
Меняется ровно три вещи: бесконечность становится минус бесконечностью, min становится max, и всё.
min на max, inf на -inf — программа готова.
Минус бесконечность ведёт себя так же удобно: прибавление к ней ничего не меняет, и недостижимые вершины сами остаются в стороне.
Флойд для максимума не годится
В таблице Флойда пути склеиваются через пересадку, и для максимума такая склейка ломается: самый длинный путь из i в k и самый длинный из k в j могут пройти по одной и той же вершине дважды, а это уже не путь.
Для длинного пути остаётся Форд–Беллман — и работает он только потому, что граф ациклический.