La mia città natale, Rhyl , ha un sistema di traffico a senso unico che sembra essere stato progettato per tenere le persone lontano dalla loro destinazione il più a lungo possibile. Il tuo compito, se scegli di tentarlo, è quello di produrre un programma per fornire il percorso più breve attraverso un tale sistema di traffico.
Ingresso
L'input sarà attivo STDIN
e sarà un elenco di punti iniziale e finale seguito da una riga vuota seguita da un elenco di query, come segue:
A B
B A
B C
C D
D C
A D
C A
B A
Ogni strada può essere percorsa solo nella direzione (e) indicata (e), quindi nell'esempio sopra la strada A - B è una strada a doppio senso mentre B - C è una strada a senso unico da B a C. Viaggiando da C a B è proibito.
I punti iniziale e finale saranno tutti rappresentati da una singola lettera maiuscola.
Produzione
L'output dovrebbe essere il percorso più breve (misurato dal numero di punti visitati) dal punto di partenza dato al punto di fine dato per ogni query ricevuta. Se non esiste tale route, emettere una riga vuota. Se esiste più di un percorso più breve, emettere il primo durante l'ordinamento lessicografico di tutti i percorsi più brevi.
Per l'esempio sopra, l'output sarebbe:
A B C D
B A
Script di test
Come prima sto fornendo test per questo compito basato su script scritti da Joey e Ventero : -
e anche test e output attesi per chiunque non possa usare gli script sopra
Uso: ./test [your program and its arguments]
Rewards
Tutte le risposte che hanno ovviamente tentato di giocare a golf che soddisfano le specifiche e superano tutti i test otterranno il mio voto. La risposta operativa più breve entro il 26/01/2012 sarà accettata.
output the first when sorting all shortest routes lexicographically
- Quindi seA B D
eA C D
sono entrambe valide soluzioni, outputA B D
invece?