Thành phố quê hương của tôi, Rhyl , có một hệ thống giao thông một chiều dường như được thiết kế để giữ mọi người tránh xa điểm đến của họ càng lâu càng tốt. Nhiệm vụ của bạn, nếu bạn chọn thử nó, là tạo ra một chương trình để đưa ra con đường ngắn nhất thông qua một hệ thống giao thông như vậy.
Đầu vào
Đầu vào sẽ được bật STDIN
và sẽ là một danh sách các điểm bắt đầu và điểm kết thúc theo sau là một dòng trống theo sau là một danh sách các truy vấn, như sau:
A B
B A
B C
C D
D C
A D
C A
B A
Mỗi đường chỉ có thể được đi theo (các) hướng đã cho, vì vậy, trong ví dụ trên, đường A - B là đường hai chiều trong khi B - C là đường một chiều từ B đến C. Đi từ C đến B bị cấm.
Điểm bắt đầu và điểm kết thúc sẽ được thể hiện bằng một chữ cái viết hoa.
Đầu ra
Đầu ra phải là tuyến đường ngắn nhất (được đo bằng số điểm đã truy cập) từ điểm bắt đầu nhất định đến điểm kết thúc đã cho cho mỗi truy vấn nhận được. Nếu không có tuyến đường như vậy tồn tại, xuất ra một dòng trống. Nếu có nhiều tuyến ngắn nhất tồn tại, hãy xuất đầu tiên khi sắp xếp tất cả các tuyến ngắn nhất theo từ vựng.
Đối với ví dụ trên, đầu ra sẽ là:
A B C D
B A
Kiểm tra tập lệnh
Như trước đây tôi đang cung cấp các bài kiểm tra cho nhiệm vụ này dựa trên các kịch bản được viết bởi Joey và Ventero : -
và cũng kiểm tra và đầu ra dự kiến cho bất cứ ai không thể sử dụng các tập lệnh trên
Sử dụng: ./test [your program and its arguments]
Phần thưởng
Tất cả các câu trả lời rõ ràng đã có một số nỗ lực để chơi golf đáp ứng thông số kỹ thuật và vượt qua tất cả các bài kiểm tra sẽ nhận được sự ủng hộ của tôi. Câu trả lời ngắn nhất vào ngày 26/01/2012 sẽ được chấp nhận.
output the first when sorting all shortest routes lexicographically
- Vậy nếuA B D
vàA C D
cả hai đều là giải pháp hợp lệ, đầu raA B D
thay thế?