QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 1024 MB 總分: 100

#1166. 設計 PCB

统计

Dongkyu 正在嘗試設計一塊單面印刷電路板(簡稱 PCB)。PCB 由安裝元件的焊墊(pad)以及連接這些焊墊的導電軌跡(track)組成。你可以將 PCB 想像成一個無限的二維平面,焊墊為平面上的一個點,而軌跡則為平面上的一條連通折線。

在 Dongkyu 想要設計的電路中,$2n$ 個焊墊水平排列。從左邊數起的第 $i$ 個焊墊位於座標 $(i - 1, 0)$。每個焊墊都被分配了一個標籤:一個介於 $1$ 到 $n$ 之間的整數(包含 $1$ 和 $n$)。對於每個 $1 \le i \le n$,恰好有兩個標籤為 $i$ 的焊墊。

Dongkyu 需要繪製 $n$ 條軌跡來連接標籤相同的焊墊對。每條軌跡必須是由長度為正整數的線段組成的折線,且每個線段必須平行於其中一個座標軸。軌跡的起點和終點為代表焊墊的點。任意兩條軌跡不得共用任何點。

給定焊墊的數量與標籤,請撰寫一個程式來設計該電路。

輸入格式

第一行包含一個整數 $n$ ($1 \le n \le 1000$)。 第二行包含 $2n$ 個整數 $p_i$ ($1 \le p_i \le n$)。其中 $p_i$ 是從左邊數起第 $i$ 個焊墊的標籤。 保證 $1$ 到 $n$ 之間的每個整數在標籤中恰好出現兩次。

輸出格式

如果無法設計出符合題目敘述限制的電路,請輸出 “NO”。 否則,第一行輸出 “YES”。接著在接下來的 $n$ 行中,依照連接焊墊的標籤數值由小到大的順序,輸出 $n$ 條軌跡的描述。

每條軌跡必須是從兩個連接焊墊中位於左側的那一個開始的折線。軌跡的描述以一個整數 $L_i$ ($1 \le L_i \le 10$) 開頭,描述構成該軌跡的線段數量。 每個線段由一個代表方向的字母,後接一個代表線段長度的正整數來描述。方向為:‘D’ — 下($y$ 減少)、‘U’ — 上($y$ 增加)、‘R’ — 右($x$ 增加)以及 ‘L’ — 左($x$ 減少)。線段必須依照它們連接的順序,從起始焊墊列出至結束焊墊。

每條折線不得有自交或自接觸的情況。不同的折線不得有共同點。折線頂點的最終座標絕對值不得超過 $10^4$。字母與整數之間請用空格隔開。請參考範例輸出以釐清格式。 如果存在多種解,輸出其中任何一種皆可。

範例

輸入 1

4
1 2 3 4 1 2 3 4

輸出 1

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

輸入 2

4
1 2 3 4 1 3 2 4

輸出 2

NO

說明

範例 1 的其中一種可能電路如圖所示。在範例 2 中,我們無法在不讓不同軌跡相交的情況下連接焊墊。

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.