Słyszałem gdzieś, że jedną rzeczą, której technologia nie może jeszcze zrobić, jest złożenie ręczników 1 . Twoim zadaniem jest udowodnienie, że to stwierdzenie jest fałszywe!
Biorąc pod uwagę ciąg znaków, złożony z prostokątów (ręczników), podobnie jak poniżej, złóż każdy ręcznik na pół dwukrotnie. Na przykład:
+------+ +------+ +--+
| | | | | |
| | | | | |
| | -> +------+ -> +--+
| |
| |
| |
+------+
Zwróć uwagę, że po złożeniu ręcznik składa się najpierw, a następnie od lewej do prawej. Twój program musi naśladować to zachowanie. Zauważ również, że w przypadkach testowych ręczniki pozostają w tym samym miejscu, ale złożone.
Zasady:
- Standardowe metody wejścia / wyjścia.
- Obowiązują standardowe luki.
- Dane wejściowe i wyjściowe powinny być ciągiem.
- Końcowe wieloryby są w porządku, o ile ręczniki są we właściwym miejscu względem siebie.
- Możesz założyć, że długość każdej strony ręcznika zawsze będzie podzielna przez 2.
- Ręczniki przekazywane jako dane wejściowe zawsze będą prostokątne.
Ręczniki będą zawsze oddzielone - jednak mogą być one rozdzielone zmiennymi ilościami.
code-golf , więc wygrywa najkrótszy kod!
Przypadki testowe:
Input:
+------+
| |
| |
| |
| |
| |
| |
+------+
Output:
+--+
| |
| |
+--+
Input:
+--+ +--+ +--+
| | | | | |
| | | | | |
+--+ +--+ +--+
Output:
++ ++ ++
++ ++ ++
Input:
+----+
| |
| |
| |
| | ++
+----+ ++
Output:
+-+
| |
+-+
+
Input:
+--+
+--+ ++
||
||
++
Output:
++
+
+
1: Zostało to obalone przez Geobits i Laikoni. Jednak gdzieś to słyszałem.