В рамках проекту містобудування ви отримали завдання створити програму або функцію, яка відображатиме горизонт міста, враховуючи деякий внесок від архітекторів. Проект знаходиться лише на стадії запуску, тому досить грубий ескіз достатній. Найпростіший підхід, звичайно, просто намалювати горизонт в ASCII-арт.
Всі будівлі будуть біля річки, таким чином вони всі вирівняні. Архітектори вказують висоту кожної будівлі як вхідний, а ваш код повинен відображати горизонт.
Вхід від архітекторів буде або цілим числом, або напівцілим числом. Якщо число є цілим числом, будинок матиме плоску дах, тоді як напівціле число призведе до скатного даху. Нуль буде просто рівним ґрунтом. Стіни будинку мають 3 символи один від одного, тоді як нуль буде одним символом. Суміжні будівлі розділяють стіни.
Щоб отримати детальну інформацію та роз'яснення щодо результатів, перегляньте приклади нижче:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Приклад введення: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Приклад введення: 0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|
Луїсвіль ,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
Використовуються символи ASCII: новий рядок, пробіл та /\_|
(кодові точки 10, 32, 47, 92, 95, 124).
Правила:
- Необов’язково робити програму, яка приймає лише введення цілих чисел, множуючи всі числа на два. Тож замість того, щоб брати
3 3.5 2
, може взяти вашу програму6 7 4
. Якщо обраний другий формат введення, вхід 6 повинен призвести до 3-поверхового будинку, 7 - 3-поверхового будинку з скатними дахами тощо. - Вихід повинен бути точно таким, як описано вище, але пробіли та нові рядки в порядку.
- Точний формат введення необов’язковий. Те, що є найкращим у вашій мові.
- Результат повинен бути відображений на екрані, щоб архітектори могли подивитися на нього.
- Ви можете припустити, що буде принаймні одне ціле число, і буде вказано лише дійсне введення.
Це codegolf, тому найкоротший код у байтах виграє.