CF1359C Mixing Water
题目描述
有两种无限的供水源:
- 温度为 $ h $ 的热水;
- 温度为 $ c $ 的冷水($ c < h $)。
你执行以下交替进行的操作步骤:
1. 取一杯热水倒入一个无限深的桶中;
2. 取一杯冷水倒入该无限深的桶中;
3. 取一杯热水 $ \dots $
4. 依此类推 $ \dots $
注意,你总是从一杯热水开始。
桶最初是空的。你必须至少向桶中倒入一杯水。桶中的水温是倒入的所有杯子温度的平均值。
你希望使温度尽可能接近 $ t $ 。因此,如果桶中的温度是 $ t_b $ ,那么 $ t_b $ 与 $ t $ 的绝对差值($ |t_b - t| $)应尽可能小。
你应该向桶中倒入多少杯水,才能使桶中的温度最接近 $ t $?如果有多个答案都能达到相同的最小绝对差值,则输出其中杯数最少的那个。
输入格式
第一行包含一个整数 $ T $($ 1 \le T \le 3 \cdot 10^4 $)——测试用例的数量。
接下来的 $ T $ 行,每行包含三个整数 $ h $、$ c $ 和 $ t $($ 1 \le c < h \le 10^6 $;$ c \le t \le h $)——热水的温度、冷水的温度以及期望的桶中温度。
输出格式
对于每个测试用例,输出一个正整数——为了获得最接近 $ t $ 的温度,需要倒入桶中的最少杯子数量。
说明/提示
在第一个测试用例中,倒入 $ 2 $ 杯水($ 1 $ 杯热水和 $ 1 $ 杯冷水)后的温度恰好是 $ 20 $。这是我们能达到的最接近值。
在第二个测试用例中,倒入 $ 7 $ 杯水($ 4 $ 杯热水和 $ 3 $ 杯冷水)后的温度约为 $ 29.857 $。倒入更多的水不会让我们更接近 $ t $。
在第三个测试用例中,倒入 $ 1 $ 杯水($ 1 $ 杯热水)后的温度是 $ 18 $。这正好等于 $ t $。
翻译由 DeepSeek V3 完成