Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 1024 MB
Statistics

VegiCat и VegiDog проводят особую дуэль в Slay the Spire. VegiCat играет за Созерцательницу A, а VegiDog играет за Созерцательницу B. Базовые силы атаки A и B равны $a$ и $b$, а начальные значения здоровья равны $h_A$ и $h_B$ соответственно.

problem_23595_17aa2d8990609c5348c9bf4e9d000ebd.png

В начале каждого раунда игра определяет стойку каждой Созерцательницы на этот раунд. Каждая Созерцательница может находиться в одной из двух следующих стоек:

  • Обычная (Normal): наносимый и получаемый урон не меняются.
  • Гнев (Wrath): и наносимый, и получаемый урон удваиваются.

При каждой атаке урон изначально равен базовой силе атаки атакующего. Он удваивается, если атакующий находится в стойке Гнева, и удваивается ещё раз, если защищающийся находится в стойке Гнева. Таким образом, урон в каждом раунде определяется следующим образом:

  • Если оба персонажа находятся в Обычной стойке, A наносит $a$ урона B, а B наносит $b$ урона A.
  • Если ровно один персонаж находится в стойке Гнева, A наносит $2a$ урона B, а B наносит $2b$ урона A.
  • Если оба персонажа находятся в стойке Гнева, A наносит $4a$ урона B, а B наносит $4b$ урона A.

В каждом раунде оба персонажа одновременно атакуют по одному разу, и значения здоровья обоих одновременно уменьшаются. Обе атаки срабатывают, даже если здоровье одного из персонажей становится равным $0$ или меньше в течение раунда. В конце раунда персонаж со здоровьем, меньшим либо равным $0$, погибает. Если хотя бы один из персонажей погибает, бой немедленно заканчивается; в противном случае начинается следующий раунд. Базовые силы атаки никогда не меняются, а здоровье никогда не восстанавливается.

Стойки на каждый раунд определяются игрой, а не игроками. В каждом раунде возможна любая комбинация стоек двух персонажей.

VegiCat побеждает только в том случае, если B погибает, а A остаётся в живых. Если оба персонажа погибают в одном и том же раунде, VegiCat не побеждает. Определите, победит ли VegiCat независимо от того, как будут меняться стойки обоих персонажей.

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

Первая строка содержит целое число $T$ ($1 \le T \le 10^5$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Каждый набор входных данных содержит одну строку с четырьмя целыми числами $a$, $b$, $h_A$ и $h_B$ ($1 \le a, b, h_A, h_B \le 10^{18}$), задающими базовые силы атаки и начальные значения здоровья персонажей соответственно.

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

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

Вы можете выводить ответ в любом регистре. Например, yEs, yes, Yes и YES принимаются как положительные ответы.

Примеры

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

5
1 1 5 1
1 1 4 1
1 1 1 1
1 1 1 5
2 3 13 2

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

YES
NO
NO
NO
YES

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

4
3 2 18 13
3 2 16 13
3 2 9 13
3 2 17 13

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

YES
NO
NO
YES

Примечание

В первом наборе входных данных первого примера B всегда погибает в первом раунде. A получает не более $4$ единиц урона в этом раунде и остаётся в живых.

Во втором наборе входных данных первого примера A побеждает, если оба персонажа находятся в обычной стойке в первом раунде. Если оба персонажа находятся в стойке Гнева в первом раунде, оба погибают. Следовательно, ответ — NO.

Во втором наборе входных данных второго примера, если оба персонажа находятся в обычной стойке в течение первых $4$ раундов, их оставшееся здоровье будет равно $8$ и $1$. Если оба войдут в стойку Гнева в раунде $5$, оба погибнут, поэтому победа не гарантирована.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.