QOJ.ac

QOJ

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

#1166. PCBの設計

Statistics

Dongkyuは片面プリント基板(PCB)の設計を試みている。PCBは部品を実装するためのパッドと、パッド間を接続する導電トラックで構成される。PCBは無限の二次元平面、パッドはその平面上の点、トラックはその平面上の連結されたポリライン(折れ線)と考えることができる。

Dongkyuが設計したい回路では、$2n$ 個のパッドが水平に配置されている。左から $i$ 番目のパッドは座標 $(i - 1, 0)$ に位置する。各パッドには $1$ から $n$ までの整数であるラベルが割り当てられている。$1 \le i \le n$ のそれぞれについて、ラベル $i$ が付いたパッドはちょうど2つ存在する。

Dongkyuは、同じラベルを持つパッドのペアを接続するために $n$ 本のトラックを描く必要がある。各トラックは、正の整数長のセグメントからなるポリラインでなければならず、各セグメントは座標軸のいずれかと平行でなければならない。トラックはパッドを表す点で始まり、終わる。2本のトラックが共通の点を持つことはできない。

パッドの数とラベルが与えられたとき、その回路を設計するプログラムを作成せよ。

入力

入力の最初の行には、整数 $n$ ($1 \le n \le 1000$) が含まれる。 2行目には $2n$ 個の整数 $p_i$ ($1 \le p_i \le n$) が含まれる。ここで、$p_i$ は左から $i$ 番目のパッドのラベルである。 $1$ から $n$ までの各整数がラベルの中にちょうど2回現れることが保証されている。

出力

問題文で説明された制限に従う回路を設計することが不可能な場合は、「NO」と出力せよ。 それ以外の場合は、1行目に「YES」と出力せよ。次に続く $n$ 行に、接続するパッドのラベルが小さい順に、$n$ 本のトラックの記述を出力せよ。

各トラックは、接続された2つのパッドのうち左側のパッドから始まるポリラインでなければならない。トラックの記述は、トラックを構成するセグメントの数を示す整数 $L_i$ ($1 \le L_i \le 10$) で始まる。各セグメントは、方向を示す1文字と、それに続くセグメントの長さを示す正の整数で記述される。方向は以下の通りである:‘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.