Выравнивание текста
Вы работаете в команде ICPC, которая разрабатывает текстовый редактор с прибамбасами. Вы работаете над модулем, который принимает на вход часть текста, содержащего некоторые определения или табличную информацию. Модуль должен выравнять каждую колонку в фиксированном вертикальном положении, при этом результирующий текст должен быть как можно короче. Между словами разрешено ставить только пробелы. Первые слова в каждой строке должны начинаться в позиции p[1]
= 1; вторые слова в каждой строке должны начинаться а наименьшей позиции p[2]
, такой что все первые слова завершаются не позже позиции p[2]
- 2; третьи слова в каждой строке начинаются в такой наименьшей позиции p[3]
, что все вторые слова завершаются до позиции p[3]
- 2 включительно, и так далее.
Входной текст состоит из нескольких строк. Каждая строка содержит одно или более слов, разделенных пробелами. Каждое слово состоит из заглавных или прописных латинских букв, любых ASCII пунктуационных знаков, разделителей и других непробельных ASCII символов (ASCII коды от 33 до 126 включительно). ASCII код пробела 32.
Входные данные
Содержит одну или более строк. Все строки (включая последнюю) завершаются символом EOLN (end-of-line). Каждая строка содержит как минимум одно слово, длина каждого слова от 1 до 80 символов (включительно). Слова разделены одним или несколькими пробелами. Строки могут иметь пробелы в начале или в конце. Длина каждой строки не более 180 символов. Входные данные содержат не более 1000 строк.
Выходные данные
Вывести отформатированный, выровненный текст, состоящий из такого же количества строк, из тех же слов, но без ведущих и конечных пробелов, разделенных одним или более пробелом так что i-ое слово на каждой строке начинается в одной и той же позиции p[i]
.