问题 4682 --倒水

4682: 倒水★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 21  解决: 5
[提交][状态][命题人:]

题目描述

有两个无限的水源:

1.热水的温度为h

2.冷水的温度为c(c<h)

 

交替执行以下步骤:

1. 拿一杯热水,倒进一个无限深的桶里

2. 拿一杯冷水,倒进上述桶里;

3. 拿一杯热水,倒进上述桶里…

4. ……

注意,你总是从热水开始倒!

 

桶最初是空的。你至少要倒一杯到桶里。桶里的水温是倒出的杯子的水的平均温度。

你需要让桶里的水温尽可能接近t。所以,如果桶里的水温为tb,那么t和tb之差的绝对值应尽可能地小.

 

你应该往桶里倒多少杯,使桶里的温度尽可能接近t?若有多个答案,那么输出杯数最少的那个答案。

输入

第一行包含一个整数 T  (1≤T≤3⋅1041≤T≤3⋅10^4),代表测试数据的组数.

接下来的T行,每行包含三个整数h, c和t (1≤c<h≤10^6; c≤t≤h),分别代表热水的温度,冷水的温度和桶内所需达到的温度t。

输出

每组测试数据输出一个正整数,表示为了达到最接近t的温度,需要倒进桶中的最小杯数。

样例输入
Copy
3
30 10 20
41 15 30
18 13 18
样例输出
Copy
2
7
1

提示

在第一个测试中,2杯水倒完后的温度:1杯热水1杯冷水正好是20。这是我们能达到的最接近的目标。

在第二个测试案例中,7杯后的温度:4热3冷大约是29.857。倒更多的水不会让我们更接近t。

在第三个测试中,1杯倒完后的温度:1热是18。正好等于t。

来源

[提交][状态]