Dieses Problem verfügt über einen Anhang. Du kannst ihn verwenden, um die Bewegungen des Roboters zu simulieren und zu visualisieren.
VegiCat hat einen Roboter auf einem unendlichen zweidimensionalen Gitter. Er möchte, dass dieser sich von der Zelle $s = (s_x, s_y)$ zur Zelle $t = (t_x, t_y)$ bewegt. Jede Zelle hat ganzzahlige Koordinaten. Die Zellen $s$ und $t$ können identisch sein.
Der Roboter befolgt eine Zeichenkette $p$ von Anweisungen. Jedes Zeichen ist L, R, U oder D. Sei $|p|$ die Länge von $p$.
Der Roboter startet bei $s$. Bevor er irgendwelche Anweisungen ausführt, darfst du höchstens $|p|$ Hindernisse in verschiedenen Zellen platzieren. Die Koordinaten $(x, y)$ jedes Hindernisses müssen $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$ erfüllen. Weder $s$ noch $t$ dürfen ein Hindernis enthalten. Jedes Hindernis belegt eine Zelle und bleibt während des gesamten Ablaufs fest an seinem Platz; alle anderen Zellen sind frei von Hindernissen.
Der Roboter führt die Anweisungen $p_1, p_2, \ldots, p_{|p|}$ der Reihe nach aus. Für jede Anweisung bewegt er sich ausgehend von seiner aktuellen Zelle $(x, y)$ entlang der folgenden Sequenz von Zellen:
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$.
Der Roboter macht wiederholt einen Schritt in die angegebene Richtung, solange die nächste Zelle kein Hindernis enthält. Er hält in der Zelle unmittelbar vor dem ersten Hindernis in dieser Richtung an. Wenn die nächste Zelle in der angegebenen Richtung bereits vor Beginn der Anweisung ein Hindernis enthält, bleibt der Roboter an Ort und Stelle, aber die Anweisung gilt dennoch als abgeschlossen. Wenn sich in dieser Richtung kein Hindernis voraus befindet, würde sich der Roboter ewig weiterbewegen, und die Platzierung ist ungültig.
Der Roboter kann $t$ erreichen, bevor alle Anweisungen abgeschlossen sind. Er muss dennoch alle verbleibenden Anweisungen ausführen. Konstruiere eine beliebige Hindernisplatzierung, die die obigen Anforderungen erfüllt, sodass der Roboter nach der letzten Anweisung bei $t$ endet, oder gib aus, dass keine solche Platzierung existiert.
Eingabe
Die erste Zeile enthält eine ganze Zahl $T$ ($1 \le T \le 10^5$), die Anzahl der Testfälle. Es folgt die Beschreibung der Testfälle.
Die erste Zeile jedes Testfalls enthält zwei ganze Zahlen $s_x$ und $s_y$ ($-10^9 \le s_x, s_y \le 10^9$), die Koordinaten der Startzelle.
Die zweite Zeile enthält zwei ganze Zahlen $t_x$ und $t_y$ ($-10^9 \le t_x, t_y \le 10^9$), die Koordinaten der Zielzelle.
Die dritte Zeile enthält die Anweisungszeichenkette $p$ ($1 \le |p| \le 10^5$), die ausschließlich aus den Zeichen L, R, U und D besteht.
Es wird garantiert, dass die Summe von $|p|$ über alle Testfälle $10^5$ nicht überschreitet.
Ausgabe
Gib für jeden Testfall eine Antwort in der Reihenfolge der Eingabe aus. Hindernisplatzierungen für verschiedene Testfälle sind voneinander unabhängig.
Falls keine gültige Platzierung existiert, gib NO in einer eigenen Zeile aus.
Andernfalls gib in der ersten Zeile YES aus. Gib in der zweiten Zeile eine ganze Zahl $k$ ($0 \le k \le |p|$) aus, die Anzahl der Hindernisse.
Gib anschließend $k$ Zeilen aus. Die $i$-te dieser Zeilen muss zwei ganze Zahlen $x_i$ und $y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$) enthalten, die ein Hindernis in der Zelle $(x_i, y_i)$ angeben.
Alle $k$ Koordinatenpaare müssen paarweise verschieden sein, und keines darf gleich $s$ oder $t$ sein. Die Platzierung muss es ermöglichen, dass jede Anweisung endet und der Roboter nach der letzten Anweisung bei $t$ steht. Falls es mehrere Lösungen gibt, gib eine beliebige davon aus.
Du kannst die Antwort yes oder no in beliebiger Groß- und Kleinschreibung ausgeben. Beispielsweise werden yEs, yes, Yes und YES alle als positive Antworten akzeptiert.
Beispiele
Eingabe 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
Ausgabe 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