Universal Cup Judging System

Universal Cup

시간 제한: 2 s 메모리 제한: 1024 MB
통계

Bài toán này có tệp đính kèm. Bạn có thể sử dụng nó để mô phỏng và trực quan hóa chuyển động của robot.

problem_23603_b923d7f472cb2d50f053c89f0e9688e6.png

VegiCat có một con robot trên một lưới hai chiều vô hạn. Anh ấy muốn nó di chuyển từ ô $s = (s_x, s_y)$ đến ô $t = (t_x, t_y)$. Mỗi ô có tọa độ nguyên. Hai ô $s$ và $t$ có thể trùng nhau.

Robot tuân theo một xâu lệnh $p$. Mỗi ký tự là L, R, U, hoặc D. Gọi $|p|$ là độ dài của $p$.

Robot bắt đầu tại $s$. Trước khi nó thực hiện bất kỳ lệnh nào, bạn có thể đặt tối đa $|p|$ chướng ngại vật vào các ô phân biệt. Tọa độ $(x, y)$ của mỗi chướng ngại vật phải thỏa mãn $-2 \cdot 10^9 \le x, y \le 2 \cdot 10^9$. Cả $s$ lẫn $t$ đều không được chứa chướng ngại vật. Mỗi chướng ngại vật chiếm một ô và giữ nguyên vị trí trong suốt quá trình; tất cả các ô khác đều không có chướng ngại vật.

Robot thực hiện lần lượt các lệnh $p_1, p_2, \ldots, p_{|p|}$ theo thứ tự. Với mỗi lệnh, bắt đầu từ ô hiện tại $(x, y)$, nó di chuyển dọc theo dãy các ô sau:

  • 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$.

Robot lặp đi lặp lại việc tiến một bước theo hướng được chỉ định chừng nào ô tiếp theo không chứa chướng ngại vật. Nó dừng lại ở ô ngay trước chướng ngại vật đầu tiên theo hướng đó. Nếu ô tiếp theo theo hướng được chỉ định đã có chướng ngại vật trước khi lệnh bắt đầu, robot đứng yên tại chỗ, nhưng lệnh đó vẫn được tính là đã hoàn thành. Nếu không có chướng ngại vật nào ở phía trước theo hướng đó, robot sẽ di chuyển mãi mãi, và cách đặt chướng ngại vật là không hợp lệ.

Robot có thể đi đến $t$ trước khi tất cả các lệnh được hoàn thành. Nó vẫn phải thực hiện tất cả các lệnh còn lại. Hãy xây dựng một cách đặt chướng ngại vật bất kỳ thỏa mãn các yêu cầu trên sao cho robot kết thúc tại $t$ sau lệnh cuối cùng, hoặc thông báo rằng không tồn tại cách đặt như vậy.

Dữ liệu vào

Dòng đầu tiên chứa một số nguyên $T$ ($1 \le T \le 10^5$), số lượng bộ test. Mô tả của các bộ test theo sau.

Dòng đầu tiên của mỗi bộ test chứa hai số nguyên $s_x$ và $s_y$ ($-10^9 \le s_x, s_y \le 10^9$), tọa độ của ô xuất phát.

Dòng thứ hai chứa hai số nguyên $t_x$ và $t_y$ ($-10^9 \le t_x, t_y \le 10^9$), tọa độ của ô đích.

Dòng thứ ba chứa xâu lệnh $p$ ($1 \le |p| \le 10^5$), chỉ gồm các ký tự L, R, U, và D.

Dữ liệu đảm bảo tổng của $|p|$ trên tất cả các bộ test không vượt quá $10^5$.

Dữ liệu ra

Với mỗi bộ test, in ra câu trả lời theo thứ tự dữ liệu vào. Cách đặt chướng ngại vật cho các bộ test khác nhau là độc lập.

Nếu không tồn tại cách đặt hợp lệ, in ra NO trên một dòng riêng.

Ngược lại, in ra YES trên dòng đầu tiên. Trên dòng thứ hai, in ra một số nguyên $k$ ($0 \le k \le |p|$), số lượng chướng ngại vật.

Sau đó in ra $k$ dòng. Dòng thứ $i$ trong các dòng này phải chứa hai số nguyên $x_i$ và $y_i$ ($-2 \cdot 10^9 \le x_i, y_i \le 2 \cdot 10^9$), chỉ định một chướng ngại vật tại ô $(x_i, y_i)$.

Tất cả $k$ cặp tọa độ phải phân biệt, và không cặp nào được trùng với $s$ hoặc $t$. Cách đặt phải cho phép mọi lệnh kết thúc và để robot dừng lại tại $t$ sau lệnh cuối cùng. Nếu có nhiều lời giải, hãy in ra một lời giải bất kỳ.

Bạn có thể in kết quả yes hoặc no với chữ hoa hay chữ thường tùy ý. Ví dụ: yEs, yes, Yes, và YES đều được chấp nhận là câu trả lời khẳng định.

Ví dụ

Dữ liệu vào 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

Dữ liệu ra 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.