В спортивных соревнованиях часто бывает так, что победители представлены на подиумах, где первое место занимает самый высокий в середине, второе место - в среднем росте слева, а третье место - на самом низком и ниже. направо. Мы собираемся воссоздать это здесь с некоторыми специальными настройками.
Подиумы представлены ниже:
@---@
| @ |
@---@| | |
| @ || | |
| | || | |@---@
| | || | || @ |
Это станет основой для этой проблемы. Следующий шаг - сделать подиумы достаточно широкими, чтобы в них поместились люди (для печати 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 или вернуть как результат функции.
- Допустимы либо полная программа, либо функция.
- Любое количество посторонних пробелов является приемлемым, при условии, что символы выстраиваются соответствующим образом.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).