私の出身地であるリルには、一方通行の交通システムがあり、目的地からできるだけ離れるように設計されているようです。あなたがそれを試みることを選択した場合のあなたの仕事は、そのような交通システムを通る最短ルートを与えるプログラムを作成することです。
入力
入力はになり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への移動禁止されています。
始点と終点はすべて1つの大文字で表されます。
出力
出力は、受け取ったクエリごとに、指定された開始点から指定された終了点までの最短ルート(訪問したポイントの数で測定)である必要があります。そのようなルートが存在しない場合は、空白行を出力します。複数の最短ルートが存在する場合は、すべての最短ルートを辞書順にソートするときに最初のルートを出力します。
上記の例の場合、出力は次のようになります。
A B C D
B A
テストスクリプト
前と同じように、JoeyとVenteroによって書かれたスクリプトに基づいて、このタスクのテストを提供しています:-
上記のスクリプトを使用できない人のためのテストと予想される出力
使用法: ./test [your program and its arguments]
報酬
仕様に適合し、すべてのテストに合格したゴルフでの試みが明らかにあったすべての回答は、私の賛成票を獲得します。2012年1月26日までの最も短い有効な回答が受け入れられます。
output the first when sorting all shortest routes lexicographically
-その場合A B D
とA C D
の両方の有効な解決策は、出力されるA B D
代わりに?