добрый вечер, самый оптимальный вариант использовать алгоритм де-йкстры (при поиски пишите без " - "), по правилам сообщества ссылки оставлять не могу, но на вики довольно хорошо расписано как его реализовать. там же есть и псевдокод. думаю если поищите в интернете найдете реализацию на pascal.
буду за отметку "лучший ответ"