#Lutece0470. 倒水问题
倒水问题
Migrated from Lutece 470 倒水问题
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
有装满水的升的杯子、空的升杯子和升杯子,个杯子中都没有刻度。在不使用其他道具的情况下,是否可以量出升的水呢?
方法如下图所示:
即,倒水问题的一种方法为:
$(6,0,0)\rightarrow (3,3,0)\rightarrow (3,2,1)\rightarrow (4,2,0)$
注意:由于没有刻度,用杯子给杯子倒水时必须一直把杯子倒满或者把杯子倒空,而不能中途停止。
你的任务是解决一般性的问题:设大、中、小个杯子的容量分别为,最初只有大杯子装满水,其他两个杯子为空。最少需要多少步才能让某一个杯子中的水有升呢?()。
Input
输入数据包括多组数据,每组数据占一行,分别为,四个数间用一个空格隔开。
Output
每行输入对应一行输出,即完成目标所需的最小步数。如果不能完成目标,输出NO
。
Samples
6 3 1 4
9 6 3 1
3
NO
Resources
刘汝佳 算法竞赛入门经典