Задача G. Изображение таблицы

Автор:VI Всероссийская командная олимпиада школьников по программированию   Ограничение времени:2 сек
Входной файл:table.in   Ограничение памяти:64 Мб
Выходной файл:table.out  

Условие

При разработке программ для просмотра веб-страниц одной из наиболее сложных задач является корректное отображение таблиц. Компания «Kozilla», в которой вы работаете, планирует разработать новую версию браузера «Waterrat» для работы в терминальном режиме, и просит вас написать фрагмент ядра отображения веб-страниц, ответственный за формирование структуры таблиц.

Фрагмент, который вы должны написать, получает на вход информацию о количестве строк таблицы и ячейках этих строк и должен сгенерировать структуру таблицы и передать ее модулю, который занимается отображением таблицы на экране.

Таблица состоит из строк, каждая строка состоит из одной или нескольких ячеек, j-я ячейка i-й строки имеет ширину ai, j.

По заданным параметрам таблицы постройте символическое изображение ее структуры.

Формат входного файла

Первая строка входного файла содержит n — количество строк в таблице. Следующие n строк входного файла содержат описание строк таблицы.

Описание каждой строки включает число mi — количество ячеек этой строки, и mi целых чисел ai,1, ai,2, …, ai,mi — ширину каждой из ячеек строки.

Формат выходного файла

Выведите в выходной файл символическое изображение структуры таблицы. Изображение i-й строки таблицы должно начинаться изображением горизонтальной линии, составленным из символов "+" (плюс) и "-" (минус). Затем должна следовать строка, содержащая пробелы и символы "|" (вертикальная черта). Первым символом строки должна быть вертикальная черта, затем ai,1 пробелов, затем вертикальная черта, затем ai,2 пробелов, и так далее, всего mi блоков пробелов. После последнего блока должна следовать вертикальная черта. После последней строки таблицы также должно следовать изображение горизонтальной линии. В изображении горизонтальной линии используйте символ "+", если сверху или снизу от этой позиции находится вертикальная черта, и "-" в противном случае. Горизонтальная линия должна иметь минимальную возможную длину, чтобы над каждым символом вертикальной черты следующей строки и под каждым символом вертикальной черты предыдущей строки были символы "+".

Ограничения

1 ≤ n ≤ 100, 1 ≤ mi ≤ 10, 1 ≤ ai, j ≤ 20

Примеры тестов

Входной файл (table.in) Выходной файл (table.out)
1
4
3 3 5 1
1 2
1 2
2 5 1
+---+-----+-+
|   |     | |
+--++-----+-+
|  |
+--+
|  |
+--+--+-+
|     | |
+-----+-+

0.116s 0.023s 15