QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100

#1166. Diseñando una PCB

统计

Dongkyu está intentando diseñar una placa de circuito impreso (PCB, por sus siglas en inglés) de una sola cara. Una PCB se compone de almohadillas (pads) donde se pueden montar componentes y pistas conductoras que conectan dichas almohadillas. Puede imaginar una PCB como un plano bidimensional infinito, una almohadilla como un punto en el plano y una pista como una polilínea conectada en el plano.

En el circuito que Dongkyu desea diseñar, las $2n$ almohadillas están dispuestas horizontalmente. La $i$-ésima almohadilla desde la izquierda se encuentra en la coordenada $(i - 1, 0)$. A cada almohadilla se le asigna una etiqueta: un número entero entre $1$ y $n$, inclusive. Para cada $1 \le i \le n$, hay exactamente $2$ almohadillas etiquetadas con $i$.

Dongkyu necesita dibujar $n$ pistas para conectar los pares de almohadillas con la misma etiqueta. Cada pista debe ser una polilínea que consista en segmentos de longitudes enteras positivas, de tal manera que cada segmento sea paralelo a uno de los ejes de coordenadas. Deben comenzar y terminar en los puntos que representan las almohadillas. Ninguna de las dos pistas puede compartir un punto común.

Dado el número de almohadillas y el etiquetado, escriba un programa para diseñar el circuito.

Entrada

La primera línea de la entrada contiene un único número entero $n$ ($1 \le n \le 1000$).

La segunda línea contiene $2n$ números enteros $p_i$ ($1 \le p_i \le n$). Aquí, $p_i$ es la etiqueta de la $i$-ésima almohadilla desde la izquierda.

Se garantiza que cada número entero entre $1$ y $n$ aparece exactamente dos veces en las etiquetas.

Salida

Si es imposible diseñar un circuito que cumpla con las limitaciones descritas en el enunciado, imprima “NO”.

De lo contrario, imprima “YES” en la primera línea. Luego, en las siguientes $n$ líneas, imprima las descripciones de las $n$ pistas en orden creciente del número de etiqueta de las almohadillas que están conectando.

Cada pista debe ser una polilínea que comience desde la más izquierda de las dos almohadillas conectadas. La descripción de una pista comienza con un número entero $L_i$ ($1 \le L_i \le 10$) que describe el número de segmentos que forman la pista. Cada segmento se describe con una letra para la dirección, seguida de un número entero positivo para la longitud del segmento. Las direcciones son: ‘D’ — abajo (disminuyendo $y$), ‘U’ — arriba (aumentando $y$), ‘R’ — derecha (aumentando $x$) y ‘L’ — izquierda (disminuyendo $x$). Los segmentos deben listarse desde la almohadilla inicial hasta la almohadilla final en el orden en que están conectados.

Cada polilínea no debe tener autointersecciones ni autotocamientos. Las diferentes polilíneas no deben tener puntos comunes. Las coordenadas resultantes de los vértices de las polilíneas no deben ser mayores a $10^4$ en valor absoluto. Separe las letras y los números enteros con espacios. Consulte la salida de ejemplo para aclarar el formato.

Si hay más de una solución, cualquiera de ellas será aceptada.

Ejemplos

Entrada 1

4
1 2 3 4 1 2 3 4

Salida 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

Entrada 2

4
1 2 3 4 1 3 2 4

Salida 2

NO

Nota

Uno de los posibles circuitos para el ejemplo 1 se muestra en la imagen. En el ejemplo 2, no podemos conectar las almohadillas de manera que las diferentes pistas no se intersecten.

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.