Stellen Sie sich die folgenden Diagramme als Sätze vertikaler Kreuzungsrohre vor.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
In dem äußersten linken Diagramm, das 1
und 2
nach unten rutscht ihre jeweiligen Schrägstriche, überquert an den X
, und kommt an den gegenüberliegenden Seiten , von wo aus sie gestartet.
Es ist die gleiche Idee im mittleren Diagramm, aber das |
bedeutet, dass sich die Pfade nicht kreuzen, sodass sich nichts ändert.
Das Diagramm ganz rechts zeigt eine komplexere Rohrführung, 1 2 3 4
in die permeiert wird 3 1 4 2
.
Tor
Ihr Ziel bei dieser Code-Golf-Herausforderung ist es, diese "Rohrleitungsdiagramme" bei einer Permutation wie z 3 1 4 2
. Das kürzeste Programm in Bytes gewinnt.
Einzelheiten
- Die Eingabe erfolgt von stdin als Permutation der Zahlen von 1 bis n, die durch Leerzeichen getrennt sind, wobei n eine positive ganze Zahl ist. Sie können davon ausgehen, dass alle Eingaben korrekt sind.
Die Ausgabe des Routing-Diagramms geht auf stdout.
- Wenn Sie die Zahlen 1 bis n nacheinander oben im Diagramm ablegen, wird die Eingabepermutation unten ausgegeben. (Oben und unten sind immer Schrägstriche.)
- Das Diagramm muss nicht optimal klein sein. Es können so viele Ebenen wie nötig sein, solange es korrekt ist.
- Das Diagramm sollte nur die Zeichen
\/ X|
sowie die Zeilenumbrüche (keine Zahlen) enthalten. |
sollte immer an den äußersten Kreuzungen verwendet werden, da die VerwendungX
keinen Sinn ergibt.- Ein paar führende oder nachfolgende Leerzeichen sind in Ordnung, solange das Diagramm korrekt ausgerichtet ist.
Beispiele
Eine Eingabe von 3 1 4 2
könnte erzeugen (wie oben)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Eine Eingabe von 1
könnte produzieren
\
|
/
|
\
|
/
Eine Eingabe von 3 2 1
könnte produzieren
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Eine Eingabe von 2 1 3 4 6 5
könnte produzieren
\ / \ / \ /
X | X
/ \ / \ / \
X
sich direkt mit einem verbinden, |
wie es ein /
tut? Zu einem anderen X
?
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
, ... Format.
n
größer als 10 sein?