#LQB0074. 分牛奶

分牛奶

题目描述:

有 A,B,C 三个无刻度的罐子,它们的容积分别为 v、x、y 升,其中 A 罐中装满了牛奶。你的目标是通过在三个罐子之间相互倾倒牛奶,使得其中一个罐子恰好装有 v/2 升的牛奶。每次操作可选择一个装有牛奶的罐子 (源罐子),并将其中的牛奶倒入另一个罐子(目标罐子)。
规则如下:
1、源罐子中的牛奶量大于目标罐子的剩余容量,将目标罐子装满(源罐子可以剩余部分牛奶);
2、源罐子中的牛奶量小于等于目标罐子的剩余容量,将源罐子中的牛奶全部倒入目标罐子。现在请你计算要使其中一个罐子恰好装有 v/2 升牛奶的最少操作次数。

例如:v = 8,x = 3,y = 2。
状态说明:每次操作后,用「A 罐(8 升容积)/ B 罐(3 升容积)/ C 罐(2 升容积)」记录牛奶量。
初始状态:8 / 0 / 0
第 1 次:A 罐 → C 罐
A 罐牛奶量(8 升)> C 罐剩余容量(2 升),将 C 罐装满。
操作后状态:6 / 0 / 2
第 2 次:C 罐 → B 罐
C 罐牛奶量(2 升)< B 罐剩余容量(3 升),将 C 罐牛奶全倒入 B 罐。
操作后状态:6 / 2 / 0
第 3 次:A 罐 → C 罐
A 罐牛奶量(6 升)> C 罐剩余容量(2 升),将 C 罐装满。
操作后状态:4 / 2 / 2

此时 A 罐中牛奶量为 4 升(8/2),达成目标,且无法找到更少的操作次数,故最少操作次数为 3 次。

输入描述:

输入三个整数 v、x、y(1≤v≤200,1≤x≤200,1≤y≤200),分别表示 A,B,C 三个罐子的容积,整数之间以一个空格隔开。

输出描述:

输出一个整数,表示要使其中一个罐子恰好装有 v/2 升牛奶的最少操作次数。如果无法实现,输出 -1 。

8 3 2
3

Limitation

1s, 1024KiB for each test case.