Universal Cup Judging System

Universal Cup

Süre Sınırı: 1 s Bellek Sınırı: 1024 MB
İstatistikler

VegiCat ja VegiDog pelaavat erityistä kaksintaistelua Slay the Spiressa. VegiCat pelaa Watcher A:na ja VegiDog pelaa Watcher B:nä. A:n ja B:n perushyökkäysvoimat ovat $a$ ja $b$ ja alkuelämäpisteet $h_A$ ja $h_B$, vastaavasti.

problem_23595_17aa2d8990609c5348c9bf4e9d000ebd.png

Jokaisen kierroksen alussa peli määrittää kummankin Watcherin asennon (stance) kyseiselle kierrokselle. Kumpikin Watcher voi olla yhdessä seuraavista kahdesta asennosta:

  • Normal: tehty vahinko ja vastaanotettu vahinko pysyvät ennallaan.
  • Wrath: sekä tehty vahinko että vastaanotettu vahinko kaksinkertaistuvat.

Jokaisessa hyökkäyksessä vahinko on aluksi yhtä suuri kuin hyökkääjän perushyökkäysvoima. Se kaksinkertaistuu, jos hyökkääjä on Wrath-asennossa, ja kaksinkertaistuu uudelleen, jos puolustaja on Wrath-asennossa. Näin ollen vahinko kullakin kierroksella on seuraava:

  • Jos molemmat hahmot ovat Normal-asennossa, A tekee $a$ vahinkoa B:hen ja B tekee $b$ vahinkoa A:han.
  • Jos täsmälleen toinen hahmo on Wrath-asennossa, A tekee $2a$ vahinkoa B:hen ja B tekee $2b$ vahinkoa A:han.
  • Jos molemmat hahmot ovat Wrath-asennossa, A tekee $4a$ vahinkoa B:hen ja B tekee $4b$ vahinkoa A:han.

Jokaisella kierroksella molemmat hahmot hyökkäävät kerran samanaikaisesti, ja molempien elämäpisteet vähenevät samanaikaisesti. Molemmat hyökkäykset vaikuttavat, vaikka jommankumman hahmon elämäpisteet laskisivat kierroksen aikana arvoon $0$ tai sen alle. Kierroksen lopussa hahmo, jonka elämäpisteet ovat korkeintaan $0$, kuolee. Jos jompikumpi hahmo kuolee, taistelu päättyy välittömästi; muussa tapauksessa alkaa seuraava kierros. Perushyökkäysvoimat eivät koskaan muutu, eivätkä elämäpisteet koskaan palaudu.

Kunkin kierroksen asennot määrittää peli, eivät pelaajat. Mikä tahansa kahden hahmon asentojen yhdistelmä on mahdollinen jokaisella kierroksella.

VegiCat voittaa vain, jos B kuolee A:n jäädessä eloon. Jos molemmat hahmot kuolevat samalla kierroksella, VegiCat ei voita. Selvitä, voittaako VegiCat riippumatta siitä, miten molempien hahmojen asennot muuttuvat.

Syöte

Ensimmäinen rivi sisältää kokonaisluvun $T$ ($1 \le T \le 10^5$), testitapausten lukumäärän. Seuraavaksi tulee testitapausten kuvaus.

Jokainen testitapaus sisältää yhden rivin, jolla on neljä kokonaislukua $a$, $b$, $h_A$ ja $h_B$ ($1 \le a, b, h_A, h_B \le 10^{18}$), jotka ilmoittavat hahmojen perushyökkäysvoimat ja alkuelämäpisteet, vastaavasti.

Tuloste

Tulosta jokaista testitapausta kohden YES, jos VegiCat voittaa riippumatta siitä, miten molempien hahmojen asennot muuttuvat, ja muussa tapauksessa NO. Tulosta jokainen vastaus omalle rivilleen.

Voit tulostaa vastauksen millä tahansa kirjainkoolla. Esimerkiksi yEs, yes, Yes ja YES hyväksytään kaikki myönteisiksi vastauksiksi.

Esimerkit

Syöte 1

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

Tuloste 1

YES
NO
NO
NO
YES

Syöte 2

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

Tuloste 2

YES
NO
NO
YES

Huomautus

Ensimmäisen esimerkin ensimmäisessä testitapauksessa B kuolee aina ensimmäisellä kierroksella. A ottaa kyseisellä kierroksella korkeintaan $4$ vahinkoa ja jää eloon.

Ensimmäisen esimerkin toisessa testitapauksessa A voittaa, jos molemmat hahmot ovat normaalissa asennossa ensimmäisellä kierroksella. Jos molemmat hahmot ovat Wrath-asennossa ensimmäisellä kierroksella, molemmat kuolevat. Siksi vastaus on NO.

Toisen esimerkin toisessa testitapauksessa, jos molemmat hahmot ovat normaalissa asennossa ensimmäisten $4$ kierroksen ajan, heidän jäljellä olevat elämäpisteensä ovat $8$ ja $1$. Jos molemmat siirtyvät Wrath-asentoon kierroksella $5$, molemmat kuolevat, joten voitto ei ole taattu.

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.