Олимпиадный тренинг

Задача . C. Смешиваем воду


Есть два бесконечных источника воды:

  • горячая вода температуры \(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\).


Примеры
Входные данныеВыходные данные
1 3
30 10 20
41 15 30
18 13 18
2
7
1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя