Podczas zawodów sportowych często zdarza się, że zwycięzcy są prezentowani na podium, z osobą zajmującą pierwsze miejsce na najwyższym środku, drugą osobę na średnim wzroście po lewej stronie, a trzecią osobę na najniższym i w prawo. Tutaj odtworzymy to za pomocą specjalnych poprawek.
Podium są przedstawione poniżej:
@---@
| @ |
@---@| | |
| @ || | |
| | || | |@---@
| | || | || @ |
Będzie to stanowić podstawę tego wyzwania. Następnym krokiem jest, aby podium były wystarczająco szerokie, aby pasowały do ludzi (drukowane ciągi ASCII), które są na nich. Chcemy jednak zapewnić estetyczne piękno (ponieważ jest to fantastyczna okazja do zrobienia zdjęcia), dlatego każde podium musi mieć tę samą szerokość, a szerokość musi być nieparzysta. Dodatkowo ludzie (oczywiście) będą chcieli stać na środku podium, więc struny muszą być wyśrodkowane tak dobrze, jak to możliwe. (Można wyrównać do lewej lub prawej strony i nie musi być spójna.) Powyższe podium mają minimalny rozmiar i są uważane za3 szerokie.
Na przykład, biorąc pod uwagę dane wejściowe ["Tom", "Ann", "Sue"]reprezentujące odpowiednio pierwsze, drugie i trzecie miejsce, wypisz następujące podium:
Tom
@---@
Ann | @ |
@---@| | |
| @ || | | Sue
| | || | |@---@
| | || | || @ |
Jeśli jednak Annezamiast tego Annbędziemy musieli przejść do następnego rozmiaru 5i wyśrodkować łańcuchy najlepiej jak to możliwe. Tutaj wyrównuję, więc „dodatkowa” litera Anneznajduje się po lewej stronie środka, ale możesz wybrać, do której strony chcesz wyrównać.
Tom
@-----@
Anne | @ |
@-----@| | |
| @ || | | Sue
| | || | |@-----@
| | || | || @ |
Poszukajmy dłuższych nazw. Co powiesz na ["William", "Brad", "Eugene"]:
William
@-------@
Brad | @ |
@-------@| | |
| @ || | | Eugene
| | || | |@-------@
| | || | || @ |
Tutaj widzimy, że Bradma dużo białych znaków, Eugenemniej, i Williampasuje dokładnie.
W przypadku dłuższego przypadku testowego, co powiesz na ["A", "BC", "DEFGHIJKLMNOPQRSTUVWXYZ"]:
A
@-----------------------@
BC | @ |
@-----------------------@| | |
| @ || | | DEFGHIJKLMNOPQRSTUVWXYZ
| | || | |@-----------------------@
| | || | || @ |
Wreszcie mamy najmniejszy możliwy wkład, taki jak ["A", "B", "C"]:
A
@---@
B | @ |
@---@| | |
| @ || | | C
| | || | |@---@
| | || | || @ |
- Dane wejściowe i wyjściowe można podać dowolną dogodną metodą .
- Dane wejściowe są gwarantowane jako niepuste (tzn. Nigdy nie otrzymasz
""nazwy). - Możesz wydrukować go do STDOUT lub zwrócić jako wynik funkcji.
- Dopuszczalny jest pełny program lub funkcja.
- Dopuszczalna jest dowolna ilość obcych białych znaków, o ile znaki są odpowiednio ustawione w jednej linii.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).