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 1y 2deslice hacia abajo sus barras diagonales respectivas, cruce en Xy 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 4en 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 usarloXno 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 2podría producir (igual que arriba)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Una entrada de 1podría producir
\
|
/
|
\
|
/
Una entrada de 3 2 1podría producir
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Una entrada de 2 1 3 4 6 5podría producir
\ / \ / \ /
X | X
/ \ / \ / \
Xconectar 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.
nser mayor de 10?
