#P11906. 两个水桶
两个水桶
题目描述
你有两个盛水的水桶。第一个水桶装有 a 克水,第二个水桶装有 b 克水。两个水桶都非常大,可以容纳任何数量的水。
你还有一个空杯子,最多可以容纳 c 克水。
在一次移动中,你可以从任意一个水桶中舀取 最多 c 克水,倒入另一个水桶中。注意,一次移动中倒出的水量不必是整数。
你的目标是让两个水桶中的水量相等。请计算达到这个目标所需的最少移动次数。
注意:除了所描述的移动之外,不能执行其他操作。
可以证明,在任意合法输入下,始终可以达成目标。
输入格式
- 第一行包含一个整数 t(1 ≤ t ≤ 1000),表示测试用例的数量。
- 接下来的 t 行,每行包含三个整数 a、b 和 c(1 ≤ a, b, c ≤ 100),分别表示两个水桶中的水量和杯子的容量。
输出格式
对于每个测试用例,输出一个整数,表示使两个水桶中水量相等所需的最小移动次数。
输入样例 #1
6
3 7 2
17 4 3
17 17 1
17 21 100
1 100 1
97 4 3
输出样例 #1
1
3
0
1
50
16
题目说明
在第一个测试案例中,只需要移动一次就足够了:如果我们从第二个水桶中倒入2克水到第一个水桶中,两个水桶都将包含5克水。
在第二个示例测试用例中,三步移动就足够了:
*倒 3克水从第一个水桶进入第二个水桶。这一步之后,第一个水桶将含有17-3=14克水,第二个水桶将包含4+3=7克。
*倒 2克水从第一个水桶转移到第二个水桶。此操作后,第一个水桶将含有14-2=12克水,第二个水桶将包含7+2=9克。
*最后,从第一个水桶中倒出1.5克水到第二个水桶。这一步之后,第一个水桶将含有12-1.5=10.5克水,第二个水桶将包含9+1.5=10.5克。