Dans les compétitions sportives, il arrive souvent que les gagnants soient présentés sur les podiums, avec la première place au plus haut au milieu, la deuxième place à la hauteur moyenne à gauche, et la troisième place au plus bas et à droite. Nous allons recréer cela ici avec quelques ajustements spéciaux.
Les podiums sont présentés ci-dessous:
@---@
| @ |
@---@| | |
| @ || | |
| | || | |@---@
| | || | || @ |
Cela constituera la base de ce défi. L'étape suivante consiste à rendre les podiums suffisamment larges pour s'adapter aux personnes (chaînes ASCII imprimables) qui s'y trouvent. Cependant, nous voulons garantir la beauté esthétique (car c'est une fantastique opportunité de photo), donc chaque podium doit avoir la même largeur, et la largeur doit être impaire. De plus, les gens voudront (évidemment) se tenir au centre du podium, donc les cordes doivent être centrées le mieux possible. (Vous pouvez vous aligner à gauche ou à droite, et cela n'a pas besoin d'être cohérent.) Les podiums ci-dessus sont de la taille minimale et sont considérés comme 3
larges.
Par exemple, étant donné l'entrée ["Tom", "Ann", "Sue"]
représentant respectivement la première, la deuxième et la troisième place, sortez les podiums suivants:
Tom
@---@
Ann | @ |
@---@| | |
| @ || | | Sue
| | || | |@---@
| | || | || @ |
Cependant, si nous en avons Anne
au lieu de Ann
, nous devrons passer à la taille suivante 5
et centrer les cordes le mieux possible. Ici, je m'aligne de sorte que la lettre "supplémentaire" Anne
soit à gauche du centre, mais vous pouvez choisir de quel côté vous aligner.
Tom
@-----@
Anne | @ |
@-----@| | |
| @ || | | Sue
| | || | |@-----@
| | || | || @ |
Allons-y pour des noms plus longs. Que diriez-vous ["William", "Brad", "Eugene"]
:
William
@-------@
Brad | @ |
@-------@| | |
| @ || | | Eugene
| | || | |@-------@
| | || | || @ |
Ici, nous pouvons voir qu'il y Brad
a beaucoup d'espace, Eugene
moins, et qu'il William
convient parfaitement.
Pour un scénario de test plus long, que diriez-vous ["A", "BC", "DEFGHIJKLMNOPQRSTUVWXYZ"]
:
A
@-----------------------@
BC | @ |
@-----------------------@| | |
| @ || | | DEFGHIJKLMNOPQRSTUVWXYZ
| | || | |@-----------------------@
| | || | || @ |
Enfin, nous avons la plus petite entrée possible, quelque chose comme ["A", "B", "C"]
:
A
@---@
B | @ |
@---@| | |
| @ || | | C
| | || | |@---@
| | || | || @ |
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- L'entrée est garantie non vide (c'est-à-dire que vous ne recevrez jamais
""
de nom). - Vous pouvez l'imprimer sur STDOUT ou le renvoyer en tant que résultat de fonction.
- Un programme complet ou une fonction sont acceptables.
- N'importe quelle quantité d'espace blanc étranger est acceptable, tant que les caractères s'alignent correctement.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.