Завдання
Ваше завдання - написати всю програму, яка вирівняє даний вхід до блоку заданого розміру.
Вхід:
40
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Вихід:
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim
id est laborum.
<-- note the linebreak
Деталі введення
- Ви повинні написати всю виконувану / інтерпретаційну програму.
- Ви можете припустити, що вхід містить лише друковані символи ASCII і не містить вкладки
\t
. - Вхід може містити розриви рядків. Якщо це так, то вони наведені в якості
\n
,\r
або в\r\n
залежності від того, що ви очікуєте. Однак вони об'єднані протягом усього входу. - Вхід може бути заданий в STDIN або як аргументи командного рядка. Ви можете використовувати їх обоє, якщо це відповідає вашим потребам (наприклад, прочитайте розмір блоку з командних аргументів і введіть як stdin). Однак ви не можете жорстко кодувати будь-яку частину входу до вашої програми.
- Ви можете припустити, що розмір блоку задається як дійсне позитивне (
> 0
) число. - Розрив рядка на вході трактується так само, як пробіл (таким чином, це роздільник слів)
- Якщо вхід містить кілька одночасних пробілів, вони розглядаються як одне ціле.
Вихідні дані
- Вихід повинен бути відформатований у блок заданого розміру. Форматування виконується шляхом додавання пробілів між словами.
- Кількість пробілів між словами на рядку має бути рівним для цього рядка. Якщо це неможливо, додаткові пробіли потрібно додати по черзі за словами, що починаються зліва.
- Якщо слово більше, ніж заданий розмір блоку, воно буде стояти окремо на одному рядку (і перевищить розмір блоку).
- Якщо висновок повинен містити лише одне слово, воно буде вирівняно зліва.
- Останній рядок виводу повинен бути вирівняний ліворуч, лише один пробіл між словами. Останній рядок виходу повинен закінчуватися розривом кінцевої лінії.
Відповідь з найменшою кількістю байтів через деякий час виграє.
Якщо вам потрібна додаткова інформація, залиште коментар.
Тестові справи
Input:
10
Lorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor
Output:
Lorem
ipsum
dolor sit
amet,
consectetur
adipiscing
elit, sed
do eiusmod
tempor
Input:
20
Lorem ipsum
dolor sit amet,
Output:
Lorem ipsum dolor
sit amet,
Input:
1
Lorem ipsum dolor sit amet
Output:
Lorem
ipsum
dolor
sit
amet
Пов'язані. (Нарешті, другий виклик для мого типографічного тегу, який уже автоматично видалено.;))
—
Мартін Ендер
@ MartinBüttner Я не знав, що такий тег існує.
—
Зереги
@ Vɪʜᴀɴ Ви повинні написати всю
—
Денніс
Дублікат вирівнювання тексту, додавши пробіли .
—
pppery
@ppperry Цікаво, що я чомусь уникнув моїх пошукових навичок
—
Zereges