Memleketim, Rhyl , mümkün olduğunca uzun uzağa gidecekleri insanları korumak için tasarlanmış gibi görünüyor tek yönlü trafik sistemi vardır. Göreviniz, bunu denemeyi seçerseniz, böyle bir trafik sistemi üzerinden en kısa yolu verecek bir program üretmektir.
Giriş
Girdi açık olacak STDIN
ve başlangıç ve bitiş noktalarının bir listesi ve ardından boş bir satır ve ardından aşağıdaki gibi bir sorgu listesi olacaktır:
A B
B A
B C
C D
D C
A D
C A
B A
Her yol sadece verilen yönde ilerleyebilir, bu nedenle yukarıdaki örnekte A - B yolu iki yönlü bir sokak iken B - C B'den C'ye tek yönlü bir sokaktır. yasak.
Başlangıç ve bitiş noktalarının tümü tek bir büyük harfle temsil edilecektir.
Çıktı
Çıktı, alınan her sorgu için verilen başlangıç noktasından belirli bir bitiş noktasına kadar olan en kısa yol olmalıdır (ziyaret edilen nokta sayısı ile ölçülür). Böyle bir rota yoksa, boş bir satır verin. Birden fazla kısa rota varsa, en kısa rotaları sözlükbilimsel olarak sıralarken ilk yolu kullanın.
Yukarıdaki örnek için çıktı:
A B C D
B A
Test Scriptleri
Daha önce olduğu gibi Joey ve Ventero tarafından yazılmış senaryolara dayanarak bu görev için testler veriyorum : -
ayrıca yukarıdaki komut dosyalarını kullanamayan herkes için testler ve beklenen çıktı
Kullanımı: ./test [your program and its arguments]
Ödüller
Açıkçası spec karşılamak ve tüm testleri geçmek golf bazı teşebbüs vardı tüm cevaplar benim oy alacak. 26/01/2012 tarihine kadar en kısa çalışma cevabı kabul edilecektir.
output the first when sorting all shortest routes lexicographically
- ÖyleyseA B D
veA C D
her ikisi de geçerli çözüm ise, çıktıA B D
yerine?