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 完成