#P2700. Space Travel
Space Travel
描述
在深空中建造了数量庞大的空间站。能够以接近光速在太空中飞行的宇宙飞船也已投入使用。尽管宇宙飞船可以极快地飞行,但它们不能直接从任意一个空间站飞到另一个空间站。飞船能够到达的空间站取决于控制室中按钮上标记的数字。此外,飞船在每次停靠后必须进行燃料补充,补充燃料的时间为一个单位时间,这比任何两个空间站之间的飞行时间要长得多。
每个空间站都有一个唯一的编号。假设共有个空间站,编号从到。宇宙飞船的操作非常简单。飞船内只有两个按钮,每个按钮上标记一个正整数。假设你当前位于空间站,按下标记为的按钮可以将你传送到空间站,而按下另一个标记为的按钮可以将你传送到空间站。这两个按钮上的数字在出厂时已设定,无法更改。
位于空间站的宇航员接到了一项关键任务。为了执行任务,他们必须以最快的速度前往空间站。由于空间站的数量极其庞大,船长无法快速找到前往空间站的最佳路径。船长并非编程专家,他尝试了一个简单的程序来搜索解决方案,但该程序计算答案耗时过长。请编写一个高效的程序来为船长解决这个问题。在设计程序时,请注意船长是左撇子,这意味着船长按下标记为的按钮比按下标记为的按钮要快得多。
输入
每行输入包含个整数、、、和,分别表示空间站的数量、飞船上两个按钮标记的数字和、飞船当前所在的空间站以及目标空间站。最后一行以结束,表示测试数据输入完毕。假设,且。
输出
对于每行输入,输出两个整数和,其中和分别表示飞船从空间站到空间站所需按下两个按钮的最小次数(以最小延迟为准)。如果有多个解,优先输出值较大的解。如果无解,则输出' '。
如果存在多个解,首先输出最小的解,其次输出最大的解。
输入数据
15 2 3 0 1
43 3 11 1 3
2147483647 1 2 0 2147483645
0
输出数据
2 4
4 3
1 1073741822
来源
台湾 2004