Universal Cup Judging System

Universal Cup

Límite de tiempo: 1 s Límite de memoria: 1024 MB
Estadísticas

VegiCat i VegiDog rozgrywają specjalny pojedynek w grze Slay the Spire. VegiCat gra jako Obserwatorka A, a VegiDog gra jako Obserwatorka B. A i B mają odpowiednio bazowe siły ataku $a$ oraz $b$, a także początkowe wartości zdrowia $h_A$ oraz $h_B$.

problem_23595_17aa2d8990609c5348c9bf4e9d000ebd.png

Na początku każdej rundy gra określa postawę każdej Obserwatorki w tej rundzie. Każda Obserwatorka może znajdować się w jednej z dwóch następujących postaw:

  • Normalna (Normal): zadawane i otrzymywane obrażenia nie zmieniają się.
  • Gniew (Wrath): zarówno zadawane, jak i otrzymywane obrażenia są podwajane.

Dla każdego ataku obrażenia początkowo równają się bazowej sile ataku atakującego. Są one podwajane, jeśli atakujący jest w postawie Gniewu, i podwajane ponownie, jeśli obrońca jest w postawie Gniewu. Zatem obrażenia w każdej rundzie wyglądają następująco:

  • Jeśli obie postacie są w postawie Normalnej, A zadaje $a$ obrażeń B, a B zadaje $b$ obrażeń A.
  • Jeśli dokładnie jedna postać jest w postawie Gniewu, A zadaje $2a$ obrażeń B, a B zadaje $2b$ obrażeń A.
  • Jeśli obie postacie są w postawie Gniewu, A zadaje $4a$ obrażeń B, a B zadaje $4b$ obrażeń A.

W każdej rundzie obie postacie atakują raz jednocześnie i obie wartości zdrowia zmniejszają się jednocześnie. Oba ataki dochodzą do skutku, nawet jeśli zdrowie którejkolwiek postaci spadnie do $0$ lub poniżej podczas rundy. Na koniec rundy postać ze zdrowiem mniejszym lub równym $0$ ginie. Jeśli którakolwiek postać zginie, walka natychmiast się kończy; w przeciwnym razie rozpoczyna się kolejna runda. Bazowe siły ataku nigdy się nie zmieniają, a zdrowie nigdy nie jest przywracane.

Postawy w każdej rundzie są określane przez grę, a nie przez graczy. W każdej rundzie możliwa jest dowolna kombinacja postaw obu postaci.

VegiCat wygrywa tylko wtedy, gdy B zginie, podczas gdy A pozostanie przy życiu. Jeśli obie postacie zginą w tej samej rundzie, VegiCat nie wygrywa. Rozstrzygnij, czy VegiCat wygra niezależnie od tego, jak zmieniają się postawy obu postaci.

Wejście

Pierwszy wiersz zawiera liczbę całkowitą $T$ ($1 \le T \le 10^5$), oznaczającą liczbę przypadków testowych. Poniżej znajduje się opis przypadków testowych.

Każdy przypadek testowy zawiera jeden wiersz z czterema liczbami całkowitymi $a$, $b$, $h_A$ oraz $h_B$ ($1 \le a, b, h_A, h_B \le 10^{18}$), oznaczającymi odpowiednio bazowe siły ataku oraz początkowe wartości zdrowia postaci.

Wyjście

Dla każdego przypadku testowego wypisz YES, jeśli VegiCat wygra niezależnie od tego, jak zmieniają się postawy obu postaci, oraz NO w przeciwnym razie. Każdą odpowiedź wypisz w osobnym wierszu.

Możesz wypisać odpowiedź dowolną wielkością liter. Na przykład yEs, yes, Yes oraz YES są akceptowane jako odpowiedzi twierdzące.

Przykłady

Wejście 1

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

Wyjście 1

YES
NO
NO
NO
YES

Wejście 2

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

Wyjście 2

YES
NO
NO
YES

Uwaga

W pierwszym przypadku testowym pierwszego przykładu B zawsze ginie w pierwszej rundzie. A otrzymuje w tej rundzie co najwyżej $4$ obrażeń i pozostaje przy życiu.

W drugim przypadku testowym pierwszego przykładu A wygrywa, jeśli obie postacie są w postawie normalnej w pierwszej rundzie. Jeśli obie postacie są w postawie Gniewu w pierwszej rundzie, obie giną. Dlatego odpowiedź brzmi NO.

W drugim przypadku testowym drugiego przykładu, jeśli obie postacie są w postawie normalnej przez pierwsze $4$ rundy, ich pozostałe wartości zdrowia wynoszą $8$ i $1$. Jeśli obie wejdą w postawę Gniewu w rundzie $5$, obie zginą, więc zwycięstwo nie jest gwarantowane.

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.