#P3218. Alignments
Alignments
Description
HTML supports four different text alignments: left
, right
, center
and justify
. Compare the following examples:
Alignment | Example |
---|---|
Left | Many years later, as he faced the firing squad, Colonel Aureliano Buendia was to remember that distant afternoon when his father took him to discover ice. |
Right | Many years later, as he faced the firing squad, Colonel Aureliano Buendia |
Center | Many years later, as he faced the firing squad, Colonel Aureliano Buendia |
Justify | Many years later, as he faced the firing squad, Colonel Aureliano Buendia was to remember that distant afternoon when his father took him to discover ice. |
Text-based browsers render aligned texts by inserting spaces between neighboring words. Here words are strings consisting of non-space characters.
Now you are to implement a small routine that simulates the text-browsers’ behaviors in rendering aligned texts specified in the table below:
Alignment | Rendering | Spacing |
---|---|---|
Left | Text lines are rendered flush left. | Single spaces separate neighboring words. |
Right | Text lines are rendered flush right. | |
Center | Text lines are centered. | Single spaces separate neighboring words. Spaces before the first word should be no more and at most one less than those after the last word. |
Justify | Text lines are justified to both margins except the last one and those that contain a single word, which are aligned left. | Special spacing is considered for lines that are not required to be aligned left. Multiple spaces may separate neighboring words. For any two “gaps” between words, the one on the left should be no narrower and at most one space wider than the one on the right. |
Your routine works in a greedy manner, that is, as many as possible words should be put into the first line, then as many as possible words should be put into the second line, etc.. Line width is fixed in your routine to be 75 characters.
Input
The input contains a single test case on multiple lines. The first line contains only one character among “L
”, “R
”, “C
” and “J
”, which means some text is to be aligned left, right, centered or justified. Words of the text are found on the following at most five lines. Those on the same line are separated by at least one spaces. They will only contain characters with ASCII code between 33 and 126 (inclusive) and are less than 75 characters long.
Output
Just print out the rendered text produced by your routine.
J
Many years later, as he faced the firing squad, Colonel Aureliano Buendia was to remember
that distant afternoon when his father took him to discover ice.
Many years later, as he faced the firing squad, Colonel Aureliano Buendia
was to remember that distant afternoon when his father took him to discover
ice.
Hint
Trailing spaces at the end of each output line can be ignored, though keeping them is also acceptable.
Source
PKU Local 2007 (POJ Monthly--2007.04.28), frkstyc