Ktoś pospiesznie układa prezenty świąteczne i jest to dość bałagan:
========================
| |
========================
=============
| |
| |
| |
| |
| |
| |
=============
=======
| |
| |
| |
=======
===================
| |
| |
| |
===================
=================
| |
| |
| |
| |
=================
=======
| |
| |
=======
Poważnie, w jaki sposób ta góra zapewnia równowagę. To prawdopodobnie młotek. Aby zapobiec zawaleniu się wieży z prezentami, musisz zmienić kolejność prezentów, aby ładnie się układały:
=======
| |
| |
=======
=======
| |
| |
| |
=======
=============
| |
| |
| |
| |
| |
| |
=============
=================
| |
| |
| |
| |
=================
===================
| |
| |
| |
===================
========================
| |
========================
Zasady
- Każdy prezent składa się z góry i dołu
=
znaków oraz jednego lub więcej środkowych rzędów, składających się z dwóch|
oddzielonych spacjami. Szerokość teraźniejszości jest taka sama we wszystkich rzędach. - Nie ma pustych linii.
- Kolejne prezenty będą się nakładać w co najmniej jednej kolumnie.
- Prezenty należy układać w stosy w kolejności malejącej szerokości. W przypadku remisu wyższy prezent powinien zejść poniżej prezentu bardziej płaskiego.
- Prezenty powinny być wyśrodkowane na teraźniejszości poniżej. Jeśli teraźniejszości nie można umieścić dokładnie na środku (ponieważ różnica szerokości jest nieparzysta), możesz wybrać dowolną pozycję, która jest o pół znaku poza środkiem.
- Możesz założyć lub nie, że dane wejściowe mają jedną końcową linię nowego wiersza, ale proszę podać swoje założenie.
- Twoje rozwiązanie nie musi działać dla pustych danych wejściowych, ale musi być w stanie obsłużyć pojedynczy prezent.
- Możesz napisać program lub funkcję, która pobiera dane wejściowe za pomocą argumentu STDIN lub funkcji i zwraca wynik lub drukuje go do STDOUT.
- To jest kod golfowy, więc wygrywa najkrótsza odpowiedź (w bajtach).