Universal Cup Judging System

Universal Cup

Time Limit: 2 s Memory Limit: 1024 MB
Statistics

לבעיה זו מצורף קובץ. ניתן להשתמש בו כדי לדמות ולהמחיש חזותית את תנועות הרובוט.

problem_23603_b923d7f472cb2d50f053c89f0e9688e6.png

ל-VegiCat יש רובוט על רשת דו-ממדית אינסופית. הוא רוצה שהרובוט ינוע מהתא $s = (s_x, s_y)$ אל התא $t = (t_x, t_y)$. לכל תא יש קואורדינטות שלמות. התאים $s$ ו-$t$ עשויים להיות אותו תא.

הרובוט פועל לפי מחרוזת הוראות $p$. כל תו הוא L, R, U או D. נסמן ב-$|p|$ את אורכה של $p$.

הרובוט מתחיל ב-$s$. לפני שהוא מבצע הוראה כלשהי, מותר לך להציב לכל היותר $|p|$ מכשולים בתאים שונים. הקואורדינטות $(x, y)$ של כל מכשול חייבות לקיים $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$. לא $s$ ולא $t$ יכולים להכיל מכשול. כל מכשול תופס תא אחד ונשאר קבוע לאורך כל התהליך; כל שאר התאים פנויים ממכשולים.

הרובוט מבצע את ההוראות $p_1, p_2, \ldots, p_{|p|}$ לפי הסדר. עבור כל הוראה, החל מהתא הנוכחי שלו $(x, y)$, הוא נע לאורך סדרת התאים הבאה:

  • L: $(x, y) \to (x - 1, y) \to (x - 2, y) \to \cdots$;
  • R: $(x, y) \to (x + 1, y) \to (x + 2, y) \to \cdots$;
  • U: $(x, y) \to (x, y + 1) \to (x, y + 2) \to \cdots$;
  • D: $(x, y) \to (x, y - 1) \to (x, y - 2) \to \cdots$.

הרובוט צועד שוב ושוב צעד אחד בכיוון שצוין כל עוד התא הבא אינו מכיל מכשול. הוא נעצר בתא שלפני המכשול הראשון באותו כיוון. אם התא הבא בכיוון שצוין כבר מכיל מכשול לפני שההוראה מתחילה, הרובוט נשאר במקומו, אך ההוראה עדיין נחשבת כמושלמת. אם אין שום מכשול קדימה באותו כיוון, הרובוט ינוע לנצח, והצבת המכשולים אינה חוקית.

הרובוט עשוי להגיע אל $t$ לפני שכל ההוראות הושלמו. הוא עדיין חייב לבצע את כל ההוראות הנותרות. בנה הצבת מכשולים כלשהי המקיימת את הדרישות לעיל כך שהרובוט יסיים ב-$t$ לאחר ההוראה האחרונה, או דווח שלא קיימת הצבה כזו.

קלט

השורה הראשונה מכילה מספר שלם $T$ ($1 \le T \le 10^5$), מספר מקרי הבדיקה. אחריה מופיע תיאור מקרי הבדיקה.

השורה הראשונה של כל מקרה בדיקה מכילה שני מספרים שלמים $s_x$ ו-$s_y$ ($-10^9 \le s_x, s_y \le 10^9$), הקואורדינטות של תא ההתחלה.

השורה השנייה מכילה שני מספרים שלמים $t_x$ ו-$t_y$ ($-10^9 \le t_x, t_y \le 10^9$), הקואורדינטות של תא היעד.

השורה השלישית מכילה את מחרוזת ההוראות $p$ ($1 \le |p| \le 10^5$), המורכבת רק מהתווים L, R, U ו-D.

מובטח כי סכום $|p|$ על פני כל מקרי הבדיקה אינו עולה על $10^5$.

פלט

עבור כל מקרה בדיקה, הדפס תשובה לפי סדר הקלט. הצבות המכשולים עבור מקרי בדיקה שונים הן בלתי תלויות.

אם לא קיימת הצבה חוקית, הדפס NO בשורה נפרדת.

אחרת, הדפס YES בשורה הראשונה. בשורה השנייה, הדפס מספר שלם $k$ ($0 \le k \le |p|$), מספר המכשולים.

לאחר מכן הדפס $k$ שורות. השורה ה-$i$ מבין שורות אלו חייבת להכיל שני מספרים שלמים $x_i$ ו-$y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$), המציינים מכשול בתא $(x_i, y_i)$.

כל $k$ זוגות הקואורדינטות חייבים להיות שונים זה מזה, ואף אחד מהם אינו יכול להיות שווה ל-$s$ או ל-$t$. ההצבה חייבת לאפשר לכל הוראה להסתיים ולהשאיר את הרובוט ב-$t$ לאחר ההוראה האחרונה. אם יש מספר פתרונות, הדפס אחד מהם.

ניתן להדפיס את התשובה yes או no בכל שילוב של אותיות רישיות וקטנות. לדוגמה, yEs, yes, Yes ו-YES מתקבלות כולן כתשובות חיוביות.

דוגמאות

קלט 1

6
0 0
1 0
RL
0 0
-1 0
URD
0 0
8 0
RLR
0 0
0 0
UDUD
0 0
2 5
RDULR
0 0
1 1
RURURU

פלט 1

NO
NO
YES
2
-1 0
9 0
YES
2
0 -1
0 1
YES
5
-1 5
2 -1
2 6
3 0
3 5
YES
3
1 2
2 0
2 1

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.