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

בתחילת כל סיבוב, המשחק קובע את העמידה (stance) של כל צופה לאותו סיבוב. כל צופה יכולה להיות באחת משתי העמידות הבאות:

  • רגילה (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.