Quelqu'un a empilé à la hâte les cadeaux de Noël, et c'est un vrai gâchis:
========================
| |
========================
=============
| |
| |
| |
| |
| |
| |
=============
=======
| |
| |
| |
=======
===================
| |
| |
| |
===================
=================
| |
| |
| |
| |
=================
=======
| |
| |
=======
Comme, sérieusement, comment ce haut présente-t-il un équilibre égal? C'est probablement un marteau. Pour éviter que cette tour de cadeaux ne s'effrite, vous devez réorganiser les cadeaux pour qu'ils s'empilent bien:
=======
| |
| |
=======
=======
| |
| |
| |
=======
=============
| |
| |
| |
| |
| |
| |
=============
=================
| |
| |
| |
| |
=================
===================
| |
| |
| |
===================
========================
| |
========================
Les règles
- Chaque cadeau se compose d'un haut et d'un bas de
=
caractères et d'une ou plusieurs rangées centrales, composées de deux|
séparées par des espaces. La largeur du présent est la même dans toutes ses rangées. - Il n'y a pas de lignes vides.
- Les cadeaux consécutifs se chevaucheront dans au moins une colonne.
- Les cadeaux doivent être empilés par ordre décroissant de largeur. En cas d'égalité, le plus grand présent devrait aller en dessous du plus plat présent.
- Les cadeaux doivent être centrés sur le présent en dessous. Si le cadeau ne peut pas être placé exactement au centre (parce que la différence de largeur est étrange), vous pouvez choisir l'une ou l'autre position à un demi-caractère du centre.
- Vous pouvez ou non supposer que l'entrée a une seule nouvelle ligne de fin, mais veuillez énoncer votre hypothèse.
- Votre solution ne doit pas fonctionner pour une entrée vide, mais doit être capable de gérer un seul cadeau.
- Vous pouvez écrire un programme ou une fonction, qui prend une entrée via STDIN ou un argument de fonction et renvoie le résultat ou l'imprime dans STDOUT.
- Il s'agit du code golf, donc la réponse la plus courte (en octets) l'emporte.