Я где-то слышал, что одна вещь, которую технология пока не может сделать, это складывать полотенца 1 . Так что теперь ваша задача - доказать, что это утверждение неверно!
Если в качестве входных данных использовать строку, состоящую из прямоугольников (полотенец), как показано ниже, сложите каждое полотенце пополам дважды. Например:
+------+ +------+ +--+
| | | | | |
| | | | | |
| | -> +------+ -> +--+
| |
| |
| |
+------+
Обратите внимание, что, когда полотенце сложено, оно сначала складывается, затем слева направо. Ваша программа также должна имитировать это поведение. Также обратите внимание, что в тестовых случаях полотенца остаются на одном месте, но сложенными.
Правила:
- Стандартные методы ввода / вывода.
- Применяются стандартные лазейки.
- Ввод и вывод должны быть в виде строки.
- Выходные данные в порядке, если полотенца находятся в нужном месте относительно друг друга.
- Вы можете предположить, что длина каждой стороны полотенца всегда будет делиться на 2.
- Полотенца, переданные на входе, всегда будут прямоугольными.
Полотенца всегда будут отделены друг от друга, однако они могут быть разделены на разные величины.
код-гольф , поэтому выигрывает самый короткий код!
Тестовые случаи:
Input:
+------+
| |
| |
| |
| |
| |
| |
+------+
Output:
+--+
| |
| |
+--+
Input:
+--+ +--+ +--+
| | | | | |
| | | | | |
+--+ +--+ +--+
Output:
++ ++ ++
++ ++ ++
Input:
+----+
| |
| |
| |
| | ++
+----+ ++
Output:
+-+
| |
+-+
+
Input:
+--+
+--+ ++
||
||
++
Output:
++
+
+
1: Это было опровергнуто Геобитсом и Лайкони. Однако я где-то слышал это.