Universal Cup Judging System

Universal Cup

時間限制: 1 s 記憶體限制: 1024 MB
统计

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.