Уявіть наступні діаграми як набори вертикальних перехресних труб.
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?
