3297 - 倒牛奶
描述

给定三个牛奶桶 A、B、C,其容积分别为 v, x, y。初始状态下,三个桶中的牛奶量分别为 (v, 0, 0)

你可以在任意两个桶之间进行“倾倒操作”。例如,从桶 S(源桶)向桶 D(目标桶)倒牛奶,规则如下:

    1.  如果 S 中的牛奶量**大于或等于** D 桶剩余的容量,则将 D 倒满,S 中将剩下多余的牛奶。

    2.  如果 S 中的牛奶量**小于** D 桶剩余的容量,则将 S 中的牛奶**全部**倒入 D。

注意:题目不允许从外部补充牛奶,也不允许把不想要的牛奶倒掉不要

你的任务是计算出,要使 A、B、C 其中任意一个桶的牛奶量恰好为 \dfrac{v}{2},所需要的最少倾倒操作次数。


输入

输入一行,包含三个正整数 v, x, y,分别代表三个桶的容积。

输出

输出一个整数。如果能够通过若干次操作达成目标,输出最少的操作次数;否则,输出 -1


样例

输入

8 5 3

输出

6
提示

样例解释

初始状态为 (8, 0, 0),目标是让任意一个桶的牛奶量达到 8/2 = 4 升。

一种可行的最少步骤方案如下(括号内数字分别代表 A, B, C 桶的牛奶量):

1.  (8, 0, 0) \to  从 A 倒向 B \to (3, 5, 0)

2.  (3, 5, 0) \to  从 B 倒向 C \to (3, 2, 3)

3.  (3, 2, 3) \to  从 C 倒向 A \to (6, 2, 0)

4.  (6, 2, 0) \to  从 B 倒向 C \to (6, 0, 2)

5.  (6, 0, 2) \to  从 A 倒向 B \to (1, 5, 2)

6.  (1, 5, 2) \to  从 B 倒向 C \to (1, 4, 3)

经过 6 次操作,B 桶中有了 4 升牛奶,达成目标。这是最少的操作次数。

数据范围与约定

对于 70% 的数据,满足:1 \le v, x, y \le 10

对于 100% 的数据,满足:1 \le v, x, y \le 200


标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 1
通过次数 1