Wyobraź sobie następujące diagramy jako zestawy pionowych rur krzyżujących się.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
Na schemacie najbardziej po lewej stronie 1
i 2
przesuwają się po swoich odpowiednich ukośnikach, krzyżują się X
i wychodzą po przeciwnych stronach od miejsca, w którym zaczęli.
To ten sam pomysł na środkowym schemacie, ale |
oznacza, że ścieżki się nie krzyżują, więc nic się nie zmienia.
Skrajnej prawej przedstawia schemat bardziej złożona rurka trasowania permutacji 1 2 3 4
się 3 1 4 2
.
Cel
Twoim celem w tym golfowym wyzwaniu golfowym jest narysowanie tych „schematów trasowania rur” z uwzględnieniem permutacji takiej jak 3 1 4 2
. Zwycięży najkrótszy program w bajtach.
Detale
- Dane wejściowe pochodzą ze stdin jako dowolnej permutacji liczb od 1 do n oddzielonych spacjami, gdzie n jest dodatnią liczbą całkowitą. Możesz założyć, że wszystkie dane wejściowe są dobrze sformułowane.
Wyjście ze schematu routingu przechodzi na standardowe wyjście.
- „Upuszczenie” liczb od 1 do n w kolejności na górze schematu powinno spowodować, że permutacja wejściowa wyjdzie na dole. (Góra i dół to zawsze warstwy ukośników).
- Schemat nie musi być optymalnie mały. Może to być tyle poziomów, ile to konieczne, o ile jest poprawne.
- Schemat powinien zawierać tylko znaki
\/ X|
oraz znaki nowej linii (bez cyfr). |
należy zawsze używać na najbardziej oddalonych skrzyżowaniach, ponieważ używanieX
nie ma sensu.- Kilka początkowych lub końcowych spacji jest w porządku, pod warunkiem, że schemat jest poprawnie ułożony.
Przykłady
Dane wejściowe 3 1 4 2
mogą produkować (tak samo jak powyżej)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Dane wejściowe 1
mogą produkować
\
|
/
|
\
|
/
Dane wejściowe 3 2 1
mogą produkować
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Dane wejściowe 2 1 3 4 6 5
mogą produkować
\ / \ / \ /
X | X
/ \ / \ / \
X
połączyć się bezpośrednio |
ze sposobem /
? Do innego X
?
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
, ... PDF.
n
być większy niż 10?