QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100

#1166. Thiết kế PCB

Statistics

Dongkyu đang cố gắng thiết kế một bảng mạch in (PCB) một lớp. Một PCB bao gồm các điểm tiếp xúc (pad) nơi các linh kiện có thể được gắn vào, và các đường dẫn điện kết nối các điểm tiếp xúc đó. Bạn có thể coi PCB là một mặt phẳng hai chiều vô hạn, một điểm tiếp xúc là một điểm trên mặt phẳng, và một đường dẫn là một đường gấp khúc nối liền trên mặt phẳng.

Trong mạch điện mà Dongkyu muốn thiết kế, $2n$ điểm tiếp xúc được sắp xếp theo chiều ngang. Điểm tiếp xúc thứ $i$ tính từ bên trái nằm tại tọa độ $(i - 1, 0)$. Mỗi điểm tiếp xúc được gán một nhãn: một số nguyên từ $1$ đến $n$ (bao gồm cả $1$ và $n$). Với mỗi $1 \le i \le n$, có đúng $2$ điểm tiếp xúc được dán nhãn $i$.

Dongkyu cần vẽ $n$ đường dẫn để kết nối các cặp điểm tiếp xúc có cùng nhãn. Mỗi đường dẫn phải là một đường gấp khúc bao gồm các đoạn thẳng có độ dài là số nguyên dương, sao cho mỗi đoạn thẳng song song với một trong các trục tọa độ. Các đường dẫn bắt đầu và kết thúc tại các điểm đại diện cho các điểm tiếp xúc. Không hai đường dẫn nào được phép có chung điểm.

Cho số lượng điểm tiếp xúc và nhãn của chúng, hãy viết chương trình để thiết kế mạch điện này.

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào chứa một số nguyên duy nhất $n$ ($1 \le n \le 1000$).

Dòng thứ hai chứa $2n$ số nguyên $p_i$ ($1 \le p_i \le n$). Ở đây, $p_i$ là nhãn trên điểm tiếp xúc thứ $i$ tính từ bên trái.

Đảm bảo rằng mỗi số nguyên từ $1$ đến $n$ xuất hiện đúng hai lần trong các nhãn.

Dữ liệu ra

Nếu không thể thiết kế mạch điện tuân thủ các hạn chế được mô tả trong đề bài, hãy in ra "NO".

Nếu không, hãy in "YES" trên dòng đầu tiên. Sau đó, trên $n$ dòng tiếp theo, xuất mô tả của $n$ đường dẫn theo thứ tự tăng dần của nhãn các điểm tiếp xúc mà chúng kết nối.

Mỗi đường dẫn phải là một đường gấp khúc bắt đầu từ điểm tiếp xúc nằm bên trái hơn trong hai điểm tiếp xúc được kết nối. Mô tả của một đường dẫn bắt đầu bằng một số nguyên $L_i$ ($1 \le L_i \le 10$) mô tả số lượng đoạn thẳng tạo nên đường dẫn đó. Mỗi đoạn thẳng được mô tả bằng một chữ cái chỉ hướng, theo sau là một số nguyên dương chỉ độ dài đoạn thẳng. Các hướng là: ‘D’ — xuống (giảm $y$), ‘U’ — lên (tăng $y$), ‘R’ — phải (tăng $x$), và ‘L’ — trái (giảm $x$). Các đoạn thẳng phải được liệt kê từ điểm tiếp xúc bắt đầu đến điểm tiếp xúc kết thúc theo thứ tự chúng được kết nối.

Mỗi đường gấp khúc không được tự cắt và không được tự chạm. Các đường gấp khúc khác nhau không được có điểm chung. Tọa độ các đỉnh của các đường gấp khúc thu được không được vượt quá $10^4$ theo giá trị tuyệt đối. Phân tách các chữ cái và số nguyên bằng dấu cách. Hãy xem ví dụ đầu ra để làm rõ định dạng.

Nếu có nhiều hơn một lời giải, bất kỳ lời giải nào trong số đó đều được chấp nhận.

Ví dụ

Ví dụ 1

4
1 2 3 4 1 2 3 4
YES
3 U 1 R 4 D 1
5 D 1 L 2 U 3 R 6 D 2
5 D 2 R 6 U 3 L 2 D 1
3 D 1 R 4 U 1

Ví dụ 2

4
1 2 3 4 1 3 2 4
NO

Ghi chú

Một trong những mạch điện khả thi cho ví dụ 1 được hiển thị trong hình. Trong ví dụ 2, chúng ta không thể kết nối các điểm tiếp xúc sao cho các đường dẫn khác nhau không giao nhau.

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.