Antecedentes
En la tipografía, los ríos son espacios visuales en un bloque de texto, que se producen debido a la alineación coincidente de los espacios. Estos son particularmente molestos ya que su cerebro parece captarlos más fácilmente en la visión periférica, lo que distrae constantemente sus ojos.
Como ejemplo, tome el siguiente bloque de texto, líneas discontinuas de modo que el ancho de la línea no exceda los 82 caracteres :
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor
incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet,
consectetur adipisicing elit, sed do eismod tempor incididunt ut labore et dolore
maga aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
Hay un río que abarca seis líneas en la parte inferior derecha, que he resaltado en el siguiente bloque:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor
incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum. Lorem█ipsum dolor sit amet,
consectetur adipisicing elit, sed do eismod tempor█incididunt ut labore et dolore
maga aliqua. Ut enim ad minim veniam, quis nostrud█exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute█irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla█pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui█officia deserunt mollit anim id
est laborum.
Podemos mitigar esto eligiendo un ancho de columna ligeramente diferente. Por ejemplo, si diseñamos el mismo texto usando líneas que no tengan más de 78 caracteres , no habrá un río con más de dos líneas:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor
incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor
sit amet, consectetur adipisicing elit, sed do eismod tempor incididunt ut
labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
Tenga en cuenta que para el propósito de esta pregunta solo estamos considerando fuentes monoespaciadas, de modo que los ríos son simplemente columnas verticales de espacios. La longitud de un río es la cantidad de líneas que abarca.
Aparte: si le interesa la detección de ríos en fuentes proporcionales, hay algunas publicaciones interesantes en la red.
El reto
Se le proporciona una cadena de caracteres ASCII imprimibles (punto de código 0x20 a 0x7E), es decir, una sola línea. Imprima este texto, con un ancho de línea entre 70 y 90 caracteres (inclusive), de modo que se minimice la longitud máxima de cualquier río en el texto. Si hay varios anchos de texto con la misma longitud de río máxima (mínima), elija el ancho más estrecho. El ejemplo anterior con 78 caracteres es la salida correcta para ese texto.
Para dividir líneas, debe reemplazar los caracteres de espacio (0x20) con saltos de línea, de modo que las líneas resultantes tengan tantos caracteres como sea posible, pero no más que el ancho de texto elegido. Tenga en cuenta que el salto de línea resultante en sí mismo no es parte de ese recuento. Como ejemplo, en el último bloque anterior, Lorem[...]tempor
contiene 78 caracteres, que también es el ancho del texto.
Puede suponer que la entrada no contendrá espacios consecutivos y no tendrá espacios iniciales o finales. También puede suponer que ninguna palabra (subcadena consecutiva de no espacios) contendrá más de 70 caracteres.
Puede escribir un programa o función, tomando datos a través de STDIN, argumento de línea de comando o argumento de función e imprimiendo el resultado en STDOUT.
Este es el código de golf, por lo que gana la respuesta más corta (en bytes).