PROG0346 - Banner
Your task is to format a given text fragment as a banner having a predefined width. The text fragment should be cleaned up, split across multiple lines, centered and framed within a rectangle of stars. The following example shows what the final result should look like.
Strictly follow these instructions to format the banner.
- Clean the given text by removing spaces at the front and the back and reducing consecutive spaces into a single space.
- If the text is shorter than the predefined width, the banner should be made as wide as the text itself (see second example below).
- If the text is longer than the predefined width, the text should be written out across multiple lines. Each line should contain the maximum number of remaining words that fits the predefined width. The words of the given text are separated by spaces. Punctuation marks and other special characters belong to the word to which they are attached.
- The text fragment that fits a single line should be centered across the width of the banner. Use the string method center to center the text fragment.
- Put extra stars and spaces around the text as illustrated in the above example.
Your submitted solution should put every character at exactly the right position, so the evaluation will be quite strict.
Input
A line of text followed by a line containing the predefined width $b \in \mathbb{N_0}$ of the banner. You might assume that the longest word in the text fragment is not longer than the predefined width $b$.
Output
The text formatted as a banner having width $b$, according to procedure outlined in the introduction.
Example
Input:
If evolution really works, how come mothers only have two hands? 26
Output:
******************************** * * * If evolution really works, * * how come mothers only have * * two hands? * * * ********************************
Example
Input:
And now for something completely different. 1000
Output:
************************************************* * * * And now for something completely different. * * * *************************************************
Je opdracht bestaat erin om een gegeven tekst op te maken onder de vorm van een banner met gegeven breedte. Hierbij moet je de tekst opschonen, opsplitsen over verschillende regels, en dan gecentreerd weergeven binnen een kader van sterretjes. Onderstaand voorbeeld geeft aan hoe het resultaat er moet uitzien.
Volg strikt de volgende procedure op om de banner op te maken.
- Schoon de gegeven tekst op door spaties vooraan en achteraan te verwijderen, en meerdere spaties na elkaar te reduceren tot één enkele spatie.
- Als de tekst niet langer is dan de gegeven breedte, dan moet de banner niet breder gemaakt worden dan de lengte van de tekst (zie tweede voorbeeld hieronder).
- Als de tekst wel langer is dan de gegeven breedte, dan moet de tekst uitgeschreven worden over verschillende regels, waarbij telkens het maximum aantal resterende woorden moet uitgeschreven worden dat de gegeven breedte niet overschrijdt. De woorden van de tekst worden hierbij van elkaar gescheiden door spaties. De leestekens behoren dus tot het woord waar ze aan vasthangen.
- Het tekstfragment dat op één regel past moet gecentreerd uitgeschreven worden. Gebruik de stringmethode center om tekst gecentreerd te krijgen.
- Plaats extra sterretjes en spaties rondom de tekst zoals aangegeven in het voorbeeld.
Bij de controle van je oplossing zullen we er strikt op toezien dat alle karakters op de juiste plaats gezet worden.
Invoer
Een regel met een tekst gevolgd door een regel met een gegeven breedte $b \in \mathbb{N_0}$. Je mag ervan uitgaan dat het langste woord in de tekstt niet langer is dan de gegeven breedte $b$.
Uitvoer
De tekst opgemaakt als een banner met breedte $b$, volgens de procedure die in de inleiding werd beschreven.
Voorbeeld
Invoer:
If evolution really works, how come mothers only have two hands? 26
Uitvoer:
******************************** * * * If evolution really works, * * how come mothers only have * * two hands? * * * ********************************
Voorbeeld
Invoer:
And now for something completely different. 1000
Uitvoer:
************************************************* * * * And now for something completely different. * * * *************************************************
Added by: | Peter Dawyndt |
Date: | 2013-03-30 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |