Gegeven is een tekst die we willen formatteren door hem in zo weinig mogelijk regels op te splitsen, zodat geen enkele regel een gegeven breedte \(m\) overschrijdt. Bovendien willen we dat de regels zoveel mogelijk ongeveer een gelijke lengte hebben.

Daarvoor gebruiken we als kostfunctie de som van de kost voor elke regel afzonderlijk, waarbij de kost van een regel van lengte \(n\) gelijk is aan \((m - n)^2\).

Implementeer hiervoor de interface LineBreaking1 in een klasse genaamd DynamicLineBreaking. De input bestaat uit een lijst van woorden die de tekst vormen, en we willen weten hoeveel woorden er op elke regel moeten komen om de kostfunctie te minimaliseren.

Gebruik eventueel de testklasse SimpleTest2 om je oplossing lokaal te testen.