与其他载水难题类似,此挑战的独特方面使其完全不同。
贝丝位于沙漠中的一片绿洲。湖中有大量的水,但不幸的是只有X个水桶,每个水桶的水容量为Y升。
贝丝可以手里拿着2个水桶,但要生存,她每行驶一公里必须喝1升水。她还可以在中途留下一些水桶(水不会蒸发)。
挑战
找出公式,并写出最短的解决方案,该解决方案适用于X和Y的正整数值,并计算Beth可以从绿洲经过的最大距离。允许在桶之间移动水。
例
X = 3,Y = 5
- 贝丝(Beth)从绿洲离开1个完整的桶3KM,然后返回(有绿洲的最后一杯饮料)
- 贝丝(Beth)在3KM点带来了另一个满满的铲斗,现在那里有12L。
- 贝丝可以前进到6公里,并在桶中放4升水。
- 回到3KM点。她现在只有2升水可以回到绿洲。
- 加满水桶,行驶至6KM点。她现在有8升水。
- 一直到15KM点。
答案是:15
输入输出
您可以直接在代码中定义X / Y或从输入中读取。结果可以放在变量或输出中,以最短者为准。