Minha cidade natal, Rhyl , possui um sistema de tráfego unidirecional que parece ter sido projetado para manter as pessoas afastadas de seu destino pelo maior tempo possível. Sua tarefa, se você optar por tentar, é produzir um programa para fornecer a rota mais curta através desse sistema de tráfego.
Entrada
A entrada estará ativada STDIN
e haverá uma lista de pontos de início e de término, seguidos por uma linha em branco seguida por uma lista de consultas, conforme a seguir:
A B
B A
B C
C D
D C
A D
C A
B A
Cada estrada só pode ser percorrida na (s) direção (ões) indicada (s), portanto, no exemplo acima, a estrada A - B é uma via de mão dupla, enquanto B - C é uma via de mão única de B para C. Viajando de C para B é proíbido.
Os pontos inicial e final serão todos representados por uma única letra maiúscula.
Resultado
A saída deve ser a rota mais curta (medida pelo número de pontos visitados) do ponto inicial especificado até o ponto final especificado para cada consulta recebida. Se não existir tal rota, produza uma linha em branco. Se existir mais de uma rota mais curta, imprima a primeira ao classificar todas as rotas mais curtas lexicograficamente.
Para o exemplo acima, a saída seria:
A B C D
B A
Scripts de teste
Como antes, estou fornecendo testes para esta tarefa com base em scripts escritos por Joey e Ventero : -
e também testes e resultados esperados para quem não pode usar os scripts acima
Uso: ./test [your program and its arguments]
Recompensas
Todas as respostas que obviamente tiveram alguma tentativa de jogar golfe que atendam às especificações e passem em todos os testes receberão meu voto positivo. A resposta mais curta possível até 26/01/2012 será aceita.
output the first when sorting all shortest routes lexicographically
- Então, seA B D
eA C D
são soluções válidas, emA B D
vez disso?