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

Задача . C. Убийство монстра


Монокарп играет в компьютерную игру. В игре его персонаж сражается с разными монстрами.

Битва между персонажем и монстром происходит следующим образом. Предположим, что у персонажа изначально \(h_C\) очков здоровья и атака равная \(d_C\); у монстра изначально \(h_M\) очков здоровья и атака равная \(d_M\). Бой состоит из нескольких этапов:

  1. персонаж атакует монстра, уменьшая здоровье монстра на \(d_C\);
  2. монстр атакует персонажа, уменьшая здоровье персонажа на \(d_M\);
  3. персонаж атакует монстра, уменьшая здоровье монстра на \(d_C\);
  4. монстр атакует персонажа, уменьшая здоровье персонажа на \(d_M\);
  5. и так далее, до конца боя.

Бой заканчивается, когда чье-то здоровье становится неположительным (т.е. \(0\) или меньше). Если здоровье монстра становится неположительным, то выигрывает персонаж, в противном случае побеждает монстр.

Персонаж Монокарпа в настоящее время имеет здоровье равное \(h_C\), и атаку равную \(d_C\). Он хочет убить монстра со здоровьем равным \(h_M\), и атакой равной \(d_M\). Перед боем Монокарп может потратить до \(k\) монет на улучшение оружия и/или брони своего персонажа; каждое улучшение стоит ровно одну монету, каждое улучшение оружия увеличивает атаку персонажа на \(w\), а каждое улучшение брони увеличивает здоровье персонажа на \(a\).

Сможет ли персонаж Монокарпа убить монстра, если Монокарп оптимально потратит монеты на апгрейды?

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \le t \le 5 \cdot 10^4\)) — количество наборов входных данных. Каждый набор входных данных состоит из трех строк:

Первая строка содержит два целых числа \(h_C\) и \(d_C\) (\(1 \le h_C \le 10^{15}\); \(1 \le d_C \le 10^9\)) — здоровье и атака персонажа;

Вторая строка содержит два целых числа \(h_M\) и \(d_M\) (\(1 \le h_M \le 10^{15}\); \(1 \le d_M \le 10^9\)) — здоровье и атака монстра;

Третья строка содержит три целых числа \(k\), \(w\) и \(a\) (\(0 \le k \le 2 \cdot 10^5\); \(0 \le w \le 10^4\); \(0 \le a \le 10^{10}\)) — максимальное количество монет, которые может потратить Монокарп, значение, добавляемое к атаке персонажа при каждом улучшении оружия, и значение, добавляемое к здоровью персонажа при каждом улучшении брони, соответственно.

Сумма \(k\) по всем наборам входных данных не превышает \(2 \cdot 10^5\).

Выходные данные

Для каждого набора входных данных выведите YES, если возможно убить монстра, оптимально выбрав улучшения. В противном случае выведите NO.

Примечание

В первом примере Монокарп может потратить одну монету на улучшение оружия (урон станет равным \(5\)), тогда здоровье во время битвы будет изменяться следующим образом: \((h_C, h_M) = (25, 9) \rightarrow (25, 4) \rightarrow (5, 4) \rightarrow (5, -1)\). Битва закончилась победой Монокарпа.

Во втором примере у Монокарпа нет способа победить монстра.

В третьем примере у Монокарпа нет монет, поэтому он не может купить улучшения. Однако изначальных характеристик достаточно, чтобы Монокарп победил.

В четвертом примере у Монокарпа есть \(4\) монет. Чтобы победить монстра, ему необходимо потратить \(2\) монеты на улучшение оружия и \(2\) монеты на улучшение брони.


Примеры
Входные данныеВыходные данные
1 4
25 4
9 20
1 1 10
25 4
12 20
1 1 10
100 1
45 2
0 4 10
9 2
69 2
4 2 7
YES
NO
YES
YES

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

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