Universal Cup Judging System

Universal Cup

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

VegiCat et VegiDog jouent un duel spécial dans Slay the Spire. VegiCat incarne la Gardienne A et VegiDog incarne la Gardienne B. A et B ont respectivement des puissances d'attaque de base $a$ et $b$ ainsi que des points de vie initiaux $h_A$ et $h_B$.

problem_23595_17aa2d8990609c5348c9bf4e9d000ebd.png

Au début de chaque tour, le jeu détermine la posture de chaque Gardienne pour ce tour. Chaque Gardienne peut adopter l'une des deux postures suivantes :

  • Normale (Normal) : les dégâts infligés et les dégâts subis sont inchangés.
  • Colère (Wrath) : les dégâts infligés et les dégâts subis sont tous deux doublés.

Pour chaque attaque, les dégâts valent initialement la puissance d'attaque de base de l'attaquant. Ils sont doublés si l'attaquant est en Colère, et doublés à nouveau si le défenseur est en Colère. Ainsi, les dégâts à chaque tour sont les suivants :

  • Si les deux personnages sont en posture Normale, A inflige $a$ dégâts à B, et B inflige $b$ dégâts à A.
  • Si exactement un personnage est en Colère, A inflige $2a$ dégâts à B, et B inflige $2b$ dégâts à A.
  • Si les deux personnages sont en Colère, A inflige $4a$ dégâts à B, et B inflige $4b$ dégâts à A.

À chaque tour, les deux personnages attaquent une fois simultanément, et leurs points de vie diminuent simultanément. Les deux attaques prennent effet même si les points de vie de l'un des personnages tombent à $0$ ou moins pendant le tour. À la fin du tour, un personnage ayant des points de vie inférieurs ou égaux à $0$ meurt. Si l'un des personnages meurt, le combat s'arrête immédiatement ; sinon, le tour suivant commence. Les puissances d'attaque de base ne changent jamais et les points de vie ne sont jamais restaurés.

Les postures pour chaque tour sont déterminées par le jeu, et non par les joueurs. N'importe quelle combinaison des postures des deux personnages est possible à chaque tour.

VegiCat gagne uniquement si B meurt tandis que A reste en vie. Si les deux personnages meurent au cours du même tour, VegiCat ne gagne pas. Déterminez si VegiCat gagnera peu importe comment les postures des deux personnages évoluent.

Entrée

La première ligne contient un entier $T$ ($1 \le T \le 10^5$), le nombre de cas de test. La description des cas de test suit.

Chaque cas de test contient une ligne avec quatre entiers $a$, $b$, $h_A$ et $h_B$ ($1 \le a, b, h_A, h_B \le 10^{18}$), donnant respectivement les puissances d'attaque de base et les points de vie initiaux des personnages.

Sortie

Pour chaque cas de test, affichez YES si VegiCat gagnera peu importe comment les postures des deux personnages évoluent, et NO sinon. Affichez chaque réponse sur une ligne séparée.

Vous pouvez afficher la réponse dans n'importe quelle casse. Par exemple, yEs, yes, Yes et YES sont toutes acceptées comme réponses positives.

Exemples

Entrée 1

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

Sortie 1

YES
NO
NO
NO
YES

Entrée 2

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

Sortie 2

YES
NO
NO
YES

Note

Dans le premier cas de test du premier exemple, B meurt toujours dès le premier tour. A subit au plus $4$ dégâts lors de ce tour et reste en vie.

Dans le deuxième cas de test du premier exemple, A gagne si les deux personnages sont en posture normale au premier tour. Si les deux personnages sont en Colère au premier tour, tous deux meurent. Par conséquent, la réponse est NO.

Dans le deuxième cas de test du deuxième exemple, si les deux personnages sont en posture normale pendant les $4$ premiers tours, leurs points de vie restants sont $8$ et $1$. S'ils entrent tous deux en Colère au tour $5$, ils meurent tous les deux, donc la victoire n'est pas garantie.

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.