Submit | All submissions | Best solutions | Back to list |
PROG0497 - The blank column |
A printer prints a sentence that ends in a punctuation mark in a monospaced font (a font whose characters each occupy the same amount of horizontal space). It inserts a space after the concluding punctuation mark and then prints the same sentence again. It continues in this way until it has filled the page, running the sentences together into one long paragraph.
In case the sentence is shorter than a full line and no words are hyphenated, it can be proven that the paragraph will always include a full column of blank spaces. The latter follows from the observation that each new line presents the complete sentence in some order before any part of the sentence gets repeated. Hence, there will always be a column of spaces following the first sentence. Probably it was T. Robert Scott who first discovered this phenomenon of the blank column.
Input
There are two lines of input. The first line contains a sentence that ends with a punctuation mark. There is no whitespace at the start and at the end of the sentence, and in between consecutive words there's a single space. The second line contains an integer $n \in \mathbb{N}$ that indicates the maximal number of characters that can be printed on a single line. You may assume that the length of all words in the given sentence is less than $n$.
Output
The output contains a paragraph that is generated by repeatedly printing the given sentence. There is a single space in between two repetitions of the sentence. At most $n$ characters can be printed on a single line, but each line should also contain as many words of the paragraph. The text on a line can only be broken at a position containg a space, and that space should no longer be printed. As such, a line never ends in a space.
Printing a paragraph can be terminated in two possible ways. Either the paragraph ends if a new repetition of the given sentence would be started on the next line (or in other words: the first word of the next line would correspond to the first word of the sentence). A paragraph also ends if it already consist of ten lines.
Example
Input:
The quick brown fox jumps over the lazy dog. 59
Output:
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
Een printer drukt een gegeven zin die eindigt op een leesteken af in een proportioneel lettertype (een lettertype waarvan alle letters even breed zijn). Na het laatste leesteken wordt een spatie afgedrukt, en daarna wordt opnieuw dezelfde zin afgedrukt. De printer gaat op die manier verder, totdat de pagina volledig gevuld is en de opeenvolgingen van de zin één lange paragraaf vormen.
Als het aantal karakters in de zin korter is dan het maximaal aantal toegelaten karakters op één regel en er geen woorden gesplitst worden, dan kan aangetoond worden dat de paragraaf minstens één kolom zal bevatten die uit allemaal spaties bestaat. Dat laatste volgt uit het feit dat elke regel zal beginnen met alle woorden van de gegeven zin, maar niet noodzakelijk in dezelfde volgorde. Hierdoor volgt er altijd een kolom van spaties na de eerste zin. Vermoedelijk was het T. Robert Scott die het fenomeen van deze lege kolom voor het eerste ontdekte.
Invoer
De invoer bestaat uit twee regels. De eerste regel bevat een zin die eindigt op een leesteken. Er staat geen witruimte vooraan en achteraan de zin, en tussen twee opeenvolgende woorden staat telkens één enkele spatie. De tweede regel van de invoer bevat een getal $n \in \mathbb{N}$ dat het maximaal aantal karakters aangeeft die op één enkele regel mogen afgedrukt worden. Je mag ervan uitgaan dat de lengte van alle woorden in de gegeven zin kleiner is dan $n$.
Uitvoer
De uitvoer bevat een paragraaf die gevormd wordt door het herhaaldelijk uitschrijven van de gegeven zin. Tussen twee opeenvolgingen van de zin staat telkens één enkele spatie. Op één enkele regel mogen maximaal $n$ karakters uitgeschreven worden, maar elke regel moet tevens ook zoveel mogelijk woorden van de gegeven zin bevatten. Een regel mag enkel afgebroken worden op de plaats waar een spatie staat, en deze spatie moet dan ook niet meer afgedrukt worden. Hierdoor eindigt een regel ook nooit op een spatie.
Het uitschrijven van de paragraaf kan op twee manieren beëindigd worden. Ofwel eindigt de paragraaf als op de volgende regel terug een nieuwe herhaling van de zin zou gestart worden (met andere woorden: het eerste woord van de regel zou ook het eerste woord van zin zijn). Een paragraaf eindigt ook wanneer ze reeds bestaat uit tien regels.
Voorbeeld
Invoer:
The quick brown fox jumps over the lazy dog. 59
Uitvoer:
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
Added by: | Peter Dawyndt |
Date: | 2014-08-29 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |