Задание
В этой задаче ваша задача состоит в том, чтобы нарисовать художественное представление ASCII из нескольких стопок коробок увеличивающейся высоты. В качестве входных данных вам дается количество стеков, которое является положительным целым числом. Первый стек содержит одну коробку размера 2x2. Второй стек содержит 2 коробки размера 3x3. В общем, kстек содержит kблоки размера (k+1)x(k+1).
Границы каждого прямоугольника нарисованы с помощью символов -|+, а их внутренняя часть состоит из пробелов. Соседние блоки имеют общие границы, и углы всегда должны быть нарисованы +, даже если они являются частью границы другого блока.
Примеры
Выход для 1:
++
++
Выход для 2:
+-+
| |
+-+
++ |
++-+
Выход для 3:
+--+
| |
| |
+--+
| |
+-+ |
| +--+
+-+ |
++ | |
++-+--+
Выход для 5:
+----+
| |
| |
| |
| |
+----+
| |
| |
| |
+---+ |
| +----+
| | |
| | |
+---+ |
| | |
| +----+
+--+ | |
| +---+ |
| | | |
+--+ | |
| | +----+
+-+ +---+ |
| +--+ | |
+-+ | | |
++ | | | |
++-+--+---+----+
Правила и оценки
Входные данные могут быть получены из STDIN, в качестве аргумента командной строки или в качестве аргумента функции. Выход должен идти в STDOUT или ближайший эквивалент. Допускается любое конечное количество конечных пробелов, как и предшествующих и завершающих строк, но не может быть никаких дополнительных предшествующих пробелов.
Это код-гольф, поэтому выигрывает самое низкое число байтов. Стандартные лазейки запрещены.
Integer.MaxValueкачестве входных данных.
Integer.MaxValueили эквивалентно.
nиn-1относительно просты. Два плюса никогда не будут пересекаться.