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