Поиск кратчайшего пути в графе с использованием классов
PHP
Сложный
classes
Задача «Поиск кратчайшего пути в графе с использованием классов»
Реализуйте класс Graph для представления взвешенного ориентированного графа. Класс должен содержать методы addEdge(int $from, int $to, int $weight) для добавления ребра и shortestPath(int $start, int $end) для нахождения кратчайшего пути от вершины $start до $end с использованием алгоритма Дейкстры. Если пути не существует, метод должен вернуть -1. Гарантируется, что веса ребер положительные, количество вершин не превышает 1000, количество ребер — до 10000.
Формат ввода
В первой строке через пробел заданы N (количество вершин) и M (количество ребер). Далее в M строках заданы ребра: from to weight. В последней строке заданы start и end.
Формат вывода
Целое число — минимальная стоимость пути от start до end, или -1, если пути нет.
Примеры
Пример 1
ВВОД
10
ВЫВОД
87
Пример 2
ВВОД
3 2
1 2 5
2 3 10
1 3
ВЫВОД
15
Пример 3
ВВОД
1
ВЫВОД
0
Пример 4
ВВОД
2 1
1 2 7
2 1
ВЫВОД
-1
main.php