Уявіть наступні діаграми як набори вертикальних перехресних труб.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
На крайній лівій схемі курсор 1
і 2
ковзайте вниз по відповідних нахилах, перехрещуйтесь у напрямку X
та виходьте на протилежні сторони, звідки вони починалися.
Це ж ідея в середній діаграмі, але |
означає, що шляхи не перетинаються, тому нічого не змінюється.
Найправіша діаграма показує більш складну маршрутизацію трубки, яка перестановляється 1 2 3 4
в 3 1 4 2
.
Мета
Ваша мета в цьому виклику гольфу з кодом полягає в тому, щоб скласти ці "діаграми маршрутизації трубки" з урахуванням перестановки, такі як 3 1 4 2
. Виграє найкоротша програма в байтах.
Деталі
- Введення походить від stdin як будь-яка перестановка чисел від 1 до n, розділених пробілами, де n - ціле число. Ви можете припустити, що всі дані добре сформовані.
Вихід діаграми маршрутизації йде до stdout.
- "Випадання" чисел від 1 до n для того, щоб у верхній частині діаграми повинно призвести до введення перестановки внизу. (Верхній і нижній завжди шари косої риси.)
- Діаграма не повинна бути оптимально малою. Це може бути стільки рівнів, скільки необхідно, доки це правильно.
- Діаграма повинна містити лише символи
\/ X|
, а також нові рядки (без цифр). |
завжди слід використовувати на самих віддалених перехрестях, оскільки використанняX
не має сенсу.- Кілька провідних або кінцевих пробілів добре, якщо діаграма все правильно викладена.
Приклади
Вхід 3 1 4 2
може створити (те саме, що вище)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Вхід 1
може призвести
\
|
/
|
\
|
/
Вхід 3 2 1
може призвести
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Вхід 2 1 3 4 6 5
може призвести
\ / \ / \ /
X | X
/ \ / \ / \
X
підключитися безпосередньо до |
способу, який /
робить? До іншого X
?
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
, ... формат.
n
бути більше 10?