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.