У спортивних змаганнях нерідко трапляється, що переможці представлені на подіумах, причому людина, що займає перше місце, на найвищому посередині, людина другого місця на середньому зрості зліва, а людина третього місця на нижній і направо. Ми збираємось відтворити це тут якимись спеціальними налаштуваннями.
Нижче представлені подіуми:
@---@
| @ |
@---@| | |
| @ || | |
| | || | |@---@
| | || | || @ |
Це стане основою для цього виклику. Наступний крок - зробити подіуми достатньо широкими, щоб вмістити людей (друковані струни ASCII), що на них. Однак ми хочемо забезпечити естетичну красу (адже це фантастична можливість для фото), тому кожен подіум повинен бути однакової ширини, а ширина повинна бути непарною. Крім того, люди (очевидно) захочуть стати в центрі подіуму, тому струни повинні бути по центру максимально найкращими. (Ви можете вирівняти ліворуч або праворуч, і це не повинно бути узгодженим.) Наведені подіуми мають мінімальний розмір і вважаються 3
широкими.
Наприклад, з урахуванням вхідних даних, що ["Tom", "Ann", "Sue"]
представляють відповідно перше, друге та третє місце, виведіть наступні подіуми:
Tom
@---@
Ann | @ |
@---@| | |
| @ || | | Sue
| | || | |@---@
| | || | || @ |
Однак, якщо у нас Anne
замість цього Ann
, нам потрібно підійти до наступного розміру 5
та максимально найкраще відцентрувати рядки. Тут я вирівнюю, так що "зайвий" лист Anne
розташований ліворуч від центру, але ви можете вибрати, в яку сторону вирівняти.
Tom
@-----@
Anne | @ |
@-----@| | |
| @ || | | Sue
| | || | |@-----@
| | || | || @ |
Давайте продовжимо ще кілька імен. Як щодо ["William", "Brad", "Eugene"]
:
William
@-------@
Brad | @ |
@-------@| | |
| @ || | | Eugene
| | || | |@-------@
| | || | || @ |
Тут ми можемо побачити, що Brad
пробілів багато, Eugene
тим більше, іWilliam
підходить саме так.
Що стосується більш тривалого тесту, як щодо ["A", "BC", "DEFGHIJKLMNOPQRSTUVWXYZ"]
:
A
@-----------------------@
BC | @ |
@-----------------------@| | |
| @ || | | DEFGHIJKLMNOPQRSTUVWXYZ
| | || | |@-----------------------@
| | || | || @ |
Нарешті, у нас є найменший можливий внесок ["A", "B", "C"]
:
A
@---@
B | @ |
@---@| | |
| @ || | | C
| | || | |@---@
| | || | || @ |
- Введення та вихід можуть бути задані будь-яким зручним методом .
- Вхід гарантовано не порожній (тобто ви ніколи не отримаєте
""
як ім’я). - Ви можете роздрукувати його до STDOUT або повернути його як результат функції.
- Прийнятна або повна програма, або функція.
- Будь-яка кількість сторонніх пробілів є прийнятною, доки символи не належним чином розташовуються.
- Стандартні лазівки заборонені.
- Це код-гольф, тому діють усі звичайні правила гольфу, і найкоротший код (у байтах) виграє.