В моем родном городе Рил есть система одностороннего движения, которая, кажется, была разработана для того, чтобы люди как можно дольше не попадали в пункт назначения. Ваша задача, если вы решите попробовать это, - создать программу, обеспечивающую кратчайший маршрут через такую систему трафика.
вход
Ввод будет включен STDIN, и будет список начальной и конечной точек, за которым следует пустая строка, за которой следует список запросов, как показано ниже:
A B
B A
B C
C D
D C
A D
C A
B A
Каждая дорога может быть пройдена только в указанном (ых) направлении (ях), поэтому в приведенном выше примере дорога A - B - это улица с двусторонним движением, тогда как B - C - это улица с односторонним движением от B до C. Перемещение от C до B запрещено.
Начальная и конечная точки будут представлены одной заглавной буквой.
Вывод
Выходными данными должен быть кратчайший маршрут (измеряемый количеством посещенных точек) от заданной начальной точки к заданной конечной точке для каждого полученного запроса. Если такого маршрута не существует, выведите пустую строку. Если существует более одного кратчайшего маршрута, выведите первый при сортировке всех кратчайших маршрутов лексикографически.
Для приведенного выше примера результат будет:
A B C D
B A
Тестовые сценарии
Как и прежде, я предоставляю тесты для этой задачи на основе сценариев, написанных Джои и Вентеро : -
а также тесты и ожидаемый вывод для тех, кто не может использовать вышеуказанные сценарии
Применение: ./test [your program and its arguments]
Награды
Все ответы, которые, очевидно, имели какую-то попытку сыграть в гольф, которые соответствуют спецификации и проходят все тесты, получат мое одобрение. Самый короткий рабочий ответ до 26.01.2012 будет принят.
output the first when sorting all shortest routes lexicographically- Итак, еслиA B DиA C Dоба являются действительными решениями,A B Dвместо вывода ?