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$) берілген.

Үшінші жолда тек L, R, U және D таңбаларынан тұратын $p$ ($1 \le |p| \le 10^5$) нұсқаулар жолы берілген.

Барлық тест жағдайлары бойынша $|p|$ қосындысы $10^5$-нен аспайтынына кепілдік беріледі.

Шығыс деректері

Әр тест жағдайы үшін жауапты енгізу ретімен шығарыңыз. Әртүрлі тест жағдайлары үшін кедергілерді орналастыру бір-біріне тәуелсіз.

Егер жарамды орналастыру болмаса, жеке жолға NO деп шығарыңыз.

Әйтпесе, бірінші жолға YES деп шығарыңыз. Екінші жолға кедергілер санын білдіретін бір бүтін сан $k$ ($0 \le k \le |p|$) шығарыңыз.

Содан кейін $k$ жол шығарыңыз. Осы жолдардың $i$-шісінде $(x_i, y_i)$ ұяшығындағы кедергіні көрсететін екі бүтін сан $x_i$ және $y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$) болуы тиіс.

Барлық $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.