Кто-то поспешно складывал рождественские подарки, и это довольно беспорядок:
========================
| |
========================
=============
| |
| |
| |
| |
| |
| |
=============
=======
| |
| |
| |
=======
===================
| |
| |
| |
===================
=================
| |
| |
| |
| |
=================
=======
| |
| |
=======
Как, если серьезно, как эта вершина представляет даже баланс. Это, вероятно, молоток. Чтобы эта башня подарков не рухнула, вы должны переупорядочить подарки так, чтобы они красиво складывались:
=======
| |
| |
=======
=======
| |
| |
| |
=======
=============
| |
| |
| |
| |
| |
| |
=============
=================
| |
| |
| |
| |
=================
===================
| |
| |
| |
===================
========================
| |
========================
Правила
- Каждый подарок состоит из верха и низа
=
символов и одного или нескольких средних рядов, состоящих из двух|
разделенных пробелами. Ширина подарка одинакова во всех его рядах. - Там нет пустых строк.
- Последовательные подарки будут перекрываться как минимум в одном столбце.
- Подарки должны быть сложены в порядке уменьшения ширины. В случае галстука, более высокий подарок должен идти ниже более плоского подарка.
- Подарки должны быть сосредоточены на настоящем внизу. Если подарок не может быть размещен точно в центре (потому что разница в ширине нечетна), вы можете выбрать любую позицию, которая находится на половину символа от центра.
- Вы можете или не можете предполагать, что ввод содержит один завершающий символ новой строки, но, пожалуйста, изложите свое предположение.
- Ваше решение не должно работать для пустого ввода, но должно быть в состоянии обработать один подарок.
- Вы можете написать программу или функцию, которая принимает входные данные через STDIN или аргумент функции и возвращает результат или печатает его в STDOUT.
- Это код гольф, поэтому самый короткий ответ (в байтах) выигрывает.