Moje rodzinne miasto, Rhyl , ma jednokierunkowy system ruchu, który wydaje się być zaprojektowany tak, aby trzymać ludzi z dala od ich miejsca docelowego tak długo, jak to możliwe. Twoim zadaniem, jeśli zdecydujesz się spróbować, jest stworzenie programu, który poda najkrótszą trasę przez taki system ruchu.
Wejście
Wejście będzie włączone STDIN
i będzie listą punktów początkowych i końcowych, a następnie pustą linią i listą zapytań w następujący sposób:
A B
B A
B C
C D
D C
A D
C A
B A
Każdą drogą można podróżować tylko w podanym kierunku (kierunkach), więc w powyższym przykładzie droga A - B jest drogą dwukierunkową, podczas gdy B - C jest drogą jednokierunkową z B do C. Podróż z C do B jest zabronione.
Punkty początkowe i końcowe będą reprezentowane przez jedną wielką literę.
Wynik
Dane wyjściowe powinny być najkrótszą drogą (mierzoną liczbą odwiedzonych punktów) od danego punktu początkowego do danego punktu końcowego dla każdego otrzymanego zapytania. Jeśli taka trasa nie istnieje, wypisz pusty wiersz. Jeśli istnieje więcej niż jedna najkrótsza trasa, wypisz pierwszą, sortując wszystkie najkrótsze trasy leksykograficznie.
W powyższym przykładzie wynikiem byłoby:
A B C D
B A
Skrypty testowe
Tak jak poprzednio zapewniam testy dla tego zadania na podstawie skryptów napisanych przez Joeya i Ventero : -
a także testy i oczekiwane wyniki dla każdego, kto nie może używać powyższych skryptów
Stosowanie: ./test [your program and its arguments]
Nagrody
Wszystkie odpowiedzi, które oczywiście miały jakąś próbę gry w golfa, które spełniają specyfikację i przejdą wszystkie testy, otrzymają moją opinię. Najkrótsza robocza odpowiedź do 26.01.2012 zostanie zaakceptowana.
output the first when sorting all shortest routes lexicographically
- Więc jeśliA B D
iA C D
czy oba są poprawnymi rozwiązaniami,A B D
zamiast tego?