Imagine los siguientes diagramas como conjuntos de tubos verticales entrecruzados.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
En el diagrama de la izquierda, el 1
y 2
deslice hacia abajo sus barras diagonales respectivas, cruce en X
y salga en lados opuestos de donde comenzaron.
Es la misma idea en el diagrama del medio, pero |
significa que los caminos no se cruzan, por lo que nada cambia.
El diagrama de la derecha muestra una ruta de tubo más compleja que permuta 1 2 3 4
en 3 1 4 2
.
Objetivo
Su objetivo en este desafío de golf de código es dibujar estos "diagramas de enrutamiento de tubos" dada una permutación como 3 1 4 2
. El programa más corto en bytes ganará.
Detalles
- La entrada proviene de stdin como cualquier permutación de los números del 1 al n separados por espacios, donde n es un entero positivo. Puede suponer que todas las entradas están bien formadas.
La salida del diagrama de enrutamiento va a stdout.
- "Dejar caer" los números del 1 al n en orden en la parte superior del diagrama debería dar como resultado que la permutación de entrada salga en la parte inferior. (Arriba y abajo siempre son capas de barras).
- El diagrama no necesita ser óptimamente pequeño. Puede ser tantos niveles como sea necesario siempre que sea correcto.
- El diagrama solo debe contener los caracteres
\/ X|
y las nuevas líneas (sin números). |
siempre debe usarse en las intersecciones más externas ya que usarloX
no tendría sentido.- Algunos espacios iniciales o finales están bien siempre que el diagrama esté alineado correctamente.
Ejemplos
Una entrada de 3 1 4 2
podría producir (igual que arriba)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Una entrada de 1
podría producir
\
|
/
|
\
|
/
Una entrada de 3 2 1
podría producir
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Una entrada de 2 1 3 4 6 5
podría producir
\ / \ / \ /
X | X
/ \ / \ / \
X
conectar directamente a un |
modo como lo /
hace? A otro X
?
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
, ... formato.
n
ser mayor de 10?