Universal Cup Judging System

Universal Cup

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

VegiCat dan VegiDog sedang memainkan duel khusus di Slay the Spire. VegiCat bermain sebagai Watcher A, dan VegiDog bermain sebagai Watcher B. A dan B masing-masing memiliki kekuatan serangan dasar $a$ dan $b$ serta nilai kesehatan awal $h_A$ dan $h_B$.

problem_23595_17aa2d8990609c5348c9bf4e9d000ebd.png

Pada awal setiap ronde, permainan menentukan kuda-kuda (stance) setiap Watcher untuk ronde tersebut. Setiap Watcher dapat berada dalam salah satu dari dua kuda-kuda berikut:

  • Normal: kerusakan yang diberikan dan kerusakan yang diterima tidak berubah.
  • Wrath: kerusakan yang diberikan dan kerusakan yang diterima keduanya digandakan.

Untuk setiap serangan, kerusakan awalnya sama dengan kekuatan serangan dasar penyerang. Kerusakan tersebut digandakan jika penyerang berada dalam Wrath dan digandakan lagi jika bertahan berada dalam Wrath. Dengan demikian, kerusakan pada setiap ronde adalah sebagai berikut:

  • Jika kedua karakter berada dalam Normal, A memberikan kerusakan sebesar $a$ kepada B, dan B memberikan kerusakan sebesar $b$ kepada A.
  • Jika tepat satu karakter berada dalam Wrath, A memberikan kerusakan sebesar $2a$ kepada B, dan B memberikan kerusakan sebesar $2b$ kepada A.
  • Jika kedua karakter berada dalam Wrath, A memberikan kerusakan sebesar $4a$ kepada B, dan B memberikan kerusakan sebesar $4b$ kepada A.

Setiap ronde, kedua karakter menyerang sekali secara bersamaan, dan kedua nilai kesehatan berkurang secara bersamaan. Kedua serangan tetap berlaku meskipun kesehatan salah satu karakter menjadi $0$ atau kurang selama ronde tersebut. Pada akhir ronde, karakter dengan kesehatan kurang dari atau sama dengan $0$ akan mati. Jika salah satu karakter mati, pertarungan segera berakhir; jika tidak, ronde berikutnya dimulai. Kekuatan serangan dasar tidak pernah berubah, dan kesehatan tidak pernah dipulihkan.

Kuda-kuda untuk setiap ronde ditentukan oleh permainan, bukan oleh pemain. Kombinasi apa pun dari kuda-kuda kedua karakter mungkin terjadi pada setiap ronde.

VegiCat menang hanya jika B mati sementara A tetap hidup. Jika kedua karakter mati pada ronde yang sama, VegiCat tidak menang. Tentukan apakah VegiCat akan menang terlepas dari bagaimana kuda-kuda kedua karakter berubah.

Masukan

Baris pertama berisi sebuah bilangan bulat $T$ ($1 \le T \le 10^5$), banyaknya kasus uji. Deskripsi kasus uji menyusul.

Setiap kasus uji berisi satu baris dengan empat bilangan bulat $a$, $b$, $h_A$, dan $h_B$ ($1 \le a, b, h_A, h_B \le 10^{18}$), yang masing-masing menyatakan kekuatan serangan dasar dan nilai kesehatan awal kedua karakter.

Keluaran

Untuk setiap kasus uji, keluarkan YES jika VegiCat akan menang terlepas dari bagaimana kuda-kuda kedua karakter berubah, dan NO jika sebaliknya. Keluarkan setiap jawaban pada baris terpisah.

Anda dapat mengeluarkan jawaban dalam huruf besar atau kecil apa pun. Sebagai contoh, yEs, yes, Yes, dan YES semuanya diterima sebagai respons positif.

Contoh

Masukan 1

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

Keluaran 1

YES
NO
NO
NO
YES

Masukan 2

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

Keluaran 2

YES
NO
NO
YES

Catatan

Pada kasus uji pertama dari contoh pertama, B selalu mati pada ronde pertama. A menerima paling banyak $4$ kerusakan pada ronde tersebut dan tetap hidup.

Pada kasus uji kedua dari contoh pertama, A menang jika kedua karakter berada dalam keadaan normal pada ronde pertama. Jika kedua karakter berada dalam Wrath pada ronde pertama, keduanya mati. Oleh karena itu, jawabannya adalah NO.

Pada kasus uji kedua dari contoh kedua, jika kedua karakter berada dalam keadaan normal selama $4$ ronde pertama, sisa nilai kesehatan mereka adalah $8$ dan $1$. Jika keduanya memasuki Wrath pada ronde $5$, keduanya mati, sehingga kemenangan tidak terjamin.

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.