Imaginez les diagrammes suivants comme des ensembles de tubes croisés verticaux.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
Dans le diagramme le plus à gauche, les 1et 2glissent vers le bas de leurs barres obliques respectives, se croisent Xet sortent de part et d'autre de leur point de départ.
C'est la même idée dans le diagramme du milieu, mais le |signifie que les chemins ne se croisent pas, donc rien ne change.
Le diagramme le plus à droite montre un routage de tube plus complexe qui s'infiltre 1 2 3 4dans 3 1 4 2.
Objectif
Votre objectif dans ce défi de golf de code est de dessiner ces "diagrammes de routage de tubes" étant donné une permutation telle que 3 1 4 2. Le programme le plus court en octets gagnera.
Détails
- L'entrée provient de stdin comme toute permutation des nombres de 1 à n séparés par des espaces, où n est un entier positif. Vous pouvez supposer que toutes les entrées sont bien formées.
La sortie du diagramme de routage passe à stdout.
- La «suppression» des nombres de 1 à n dans le haut du diagramme devrait entraîner la permutation d'entrée en bas. (Le haut et le bas sont toujours des couches de barres obliques.)
- Le diagramme n'a pas besoin d'être de petite taille optimale. Il peut y avoir autant de niveaux que nécessaire tant qu'il est correct.
- Le diagramme ne doit contenir que les caractères
\/ X|ainsi que les retours à la ligne (pas de chiffres). |doit toujours être utilisé sur les intersections les plus externes, car l'utilisationXn'aurait aucun sens.- Quelques espaces de début ou de fin sont corrects tant que le diagramme est correctement aligné.
Exemples
Une entrée de 3 1 4 2pourrait produire (comme ci-dessus)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Un apport de 1pourrait produire
\
|
/
|
\
|
/
Un apport de 3 2 1pourrait produire
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Un apport de 2 1 3 4 6 5pourrait produire
\ / \ / \ /
X | X
/ \ / \ / \
Xconnecter directement à un comme |le fait un /? À un autre X?
row of slashes, row of X's and |'s, row of slashes, row of X's and |'s, ... format.
nêtre supérieur à 10?
