У моєму рідному місті, Rhyl , є одностороння система руху, яка, здається, була розроблена таким чином, щоб якомога довше тримати людей подалі від місця призначення. Якщо ви вирішите спробувати це ваше завдання, - створити програму, яка дозволить провести найкоротший маршрут через таку систему руху.
Вхідні дані
Введення буде ввімкнено 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
замість цього?