Задача №421. Изображение таблицы
Максимальное время работы на одном тесте: 2 секунды
При разработке программ для просмотра веб-страниц одной из наиболее сложных задач является корректное отображение таблиц. Компания «Kozilla», в которой вы работаете, планирует разработать новую версию браузера «Waterrat» для работы в терминальном режиме и просит вас написать фрагмент ядра отображения веб-страниц, ответственный за формирование структуры таблиц.
Фрагмент, который вы должны написать, получает на вход информацию о количестве строк таблицы и ячейках этих строк и должен сгенерировать структуру таблицы и передать ее модулю, который занимается отображением таблицы на экране.
Таблица состоит из строк, каждая строка состоит из одной или нескольких ячеек, j-я ячейка i-й строки имеет ширину ai, j.
По заданным параметрам таблицы постройте символическое изображение ее структуры.
В первой строке вводится число n – количество строк в таблице ( 1\( le\)" width="16" height="28" border="0" align="middle">n
\( le\)" width="16" height="28" border="0" align="middle">100). Каждая из следующих n строк входных данных описывает одну строку таблицы.
Описание строки включает число mi – количество ячеек в этой строке, и mi целых чисел ai, 1, ai, 2,..., ai, mi – ширину каждой из ячеек строки ( 1\( le\)" width="16" height="28" border="0" align="middle">mi
\( le\)" width="16" height="28" border="0" align="middle">10, 1
\( le\)" width="16" height="28" border="0" align="middle">ai, j
\( le\)" width="16" height="28" border="0" align="middle">20).
Выведите символическое изображение структуры таблицы.
Изображение i-й строки таблицы должно начинаться горизонтальной линией, составленной из символов «+» (плюс) и «-» (минус). Затем должна следовать строка, содержащая пробелы и символы «|» (вертикальная черта). Первым символом строки должна быть вертикальная черта, затем ai, 1 пробелов, затем вертикальная черта, затем ai, 2 пробелов, и так далее, всего mi блоков пробелов. После последнего блока должна следовать вертикальная черта.
После последней строки таблицы также должна следовать горизонтальная линия.
В изображении горизонтальной линии используйте символ «+», если сверху или снизу от этой позиции находится вертикальная черта, и «-» в противном случае. Горизонтальная черта должна иметь минимальную возможную длину, чтобы над каждым символом вертикальной черты следующей строки и под каждым символом вертикальной черты предыдущей строки были символы «+».
4 3 3 5 1 1 2 1 2 2 5 1
+---+-----+-+ | | | | +--++-----+-+ | | +--+ | | +--+--+-+ | | | +-----+-+