5. naloga

Prelom besedila

Dano imamo besedilo, dolgo z znakov, ki ga želimo prikazati v okencu, ki ima prostora za w znakov na vrstico. Ko besedilo pišemo v okence, lahko vrstico prelomimo le na presledku pred začetkom nove besede. Presledki ostanejo na prejšnji vrstici in lahko gledajo preko roba okna, nova vrstica pa se začne s prvim naslednjim znakom, ki ni presledek.

Za vsako širino w od 1 do z izračunaj, koliko vrstic bo besedilo imelo, če ga želimo napisati v okence širine w. Besedilo bo vsebovalo le črke, števke, ločila in presledke. Lahko predpostaviš, da drugih znakov za prazen prostor, kot na primer tabulatorjev ali znakov za novo vrstico, ne bo. Besedilo se tudi ne bo začelo s presledkom.

Napiši podprogram (funkcijo), ki sprejme besedilo kot niz znakov dolžine z in vrne ali izpiše seznam z števil, kjer števila po vrsti predstavljajo, koliko vrstic bo besedilo imelo, če ga želimo napisati v okence širine 1, 2, 3, 4, ..., z. Če besedila v okence neke širine ni mogoče spraviti, ne da kakšna beseda gledala prek meja, na tisto mesto napiši −1.

Primer. Recimo, da dobimo takšen vhodni niz (spodaj je napisan v dveh vrsticah, vendar si moramo obe skupaj predstavljati kot en sam niz, brez kakšnih vmesnih znakov za konec vrstice ali česa podobnega; presledki so predstavljeni s simbolom ␣, da se jih bolje vidi):

Na␣začetku␣je␣bilo␣ustvarjeno␣vesolje.␣␣To␣je␣povzročilo␣
mnogo␣hude␣krvi␣in␣na␣splošno␣velja␣za␣zelo␣slabo␣potezo.

Pravilen izhodni seznam za ta niz je:

−1, −1, −1, −1, −1, −1, −1, −1, −1, 12, 12, 12, 10, 10, 8, 8, 8, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1.

Na primer, če je w = 19, spravimo besedilo v 6 vrstic (zato je 19. element v gornjem seznamu enak 6):


(Primer očitno povzet po: Douglas Adams, Restavracija ob koncu Vesolja, Štoparski vodnik po galaksiji, prevod: Alojz Kodre.)