Ouvi em algum lugar que uma coisa que a tecnologia ainda não pode fazer é dobrar as toalhas 1 . Portanto, agora é seu trabalho provar essa afirmação falsa!
Dada uma string como entrada, composta de retângulos (toalhas), como a seguir, dobre cada toalha ao meio duas vezes. Por exemplo:
+------+ +------+ +--+
| | | | | |
| | | | | |
| | -> +------+ -> +--+
| |
| |
| |
+------+
Observe que quando uma toalha é dobrada, ela é primeiro dobrada e depois da esquerda para a direita. Você programa deve imitar esse comportamento também. Observe também que, nos casos de teste, as toalhas permanecem no mesmo local, mas dobradas.
Regras:
- Métodos padrão de entrada / saída.
- Aplicam-se brechas padrão.
- Entrada e saída devem ser como uma string.
- No entanto, o resultado final é bom na saída, desde que as toalhas estejam no lugar certo, uma em relação à outra.
- Você pode assumir que o comprimento de cada lado da toalha será sempre divisível por 2.
- As toalhas passadas como entrada sempre serão retangulares.
As toalhas sempre serão separadas - no entanto, elas podem ser separadas por quantidades variáveis.
code-golf , o código mais curto ganha!
Casos de teste:
Input:
+------+
| |
| |
| |
| |
| |
| |
+------+
Output:
+--+
| |
| |
+--+
Input:
+--+ +--+ +--+
| | | | | |
| | | | | |
+--+ +--+ +--+
Output:
++ ++ ++
++ ++ ++
Input:
+----+
| |
| |
| |
| | ++
+----+ ++
Output:
+-+
| |
+-+
+
Input:
+--+
+--+ ++
||
||
++
Output:
++
+
+
1: Isso foi refutado por Geobits e Laikoni. No entanto, eu ouvi em algum lugar.