Alguien apiló apresuradamente los regalos de Navidad, y es un desastre:
========================
| |
========================
=============
| |
| |
| |
| |
| |
| |
=============
=======
| |
| |
| |
=======
===================
| |
| |
| |
===================
=================
| |
| |
| |
| |
=================
=======
| |
| |
=======
Al igual que, en serio, ¿cómo se equilibra ese presente superior? Probablemente sea un martillo. Para evitar que esta torre de regalos se desmorone, debes reordenar los regalos para que se apilen bien:
=======
| |
| |
=======
=======
| |
| |
| |
=======
=============
| |
| |
| |
| |
| |
| |
=============
=================
| |
| |
| |
| |
=================
===================
| |
| |
| |
===================
========================
| |
========================
Las normas
- Cada presente consta de una parte superior e inferior de
=
caracteres, y una o más filas intermedias, que consisten en dos|
separados por espacios. El ancho del presente es el mismo en todas sus filas. - No hay líneas vacías.
- Los regalos consecutivos se superpondrán en al menos una columna.
- Los regalos se deben apilar en orden decreciente de ancho. En caso de empate, el regalo más alto debe ir por debajo del regalo más plano.
- Los regalos deben centrarse en el presente debajo. Si el presente no se puede colocar exactamente en el centro (porque la diferencia de ancho es impar), puede elegir cualquier posición que esté a medio carácter del centro.
- Puede asumir o no que la entrada tiene una nueva línea final, pero por favor indique su suposición.
- Su solución no tiene que funcionar para una entrada vacía, sino que debe poder manejar un único presente.
- Puede escribir un programa o función, que toma la entrada a través de STDIN o argumento de función y devuelve el resultado o lo imprime en STDOUT.
- Este es el código de golf, por lo que gana la respuesta más corta (en bytes).