Pido ayuda con un programa

elescondido
22 de Noviembre del 2007
bueno basicamente lo que hay que hacer es:

Se pide una implementación del algoritmo óptimo de partición de un párrafo en líneas. La mejor partición es la que minimiza la suma por cada línea (salvo la última) del cuadrado de la cantidad de caracteres que faltan para alcanzar el ancho. El prototipo de la función es
char* lineas(int ancho, char const* entrada);
La entrada es una cadena de texto. Las palabras están separadas por caracteres de espaciado como ' ', 't', 'n', 'r', etc. Los caracteres de espacio considerados son los aceptados por la función estándar isspace(). Las palabras pueden tener cualquier cantidad de espacios de separación. Puede haber espacios extra al comienzo y al final de la entrada. No habrá palabras más largas que ancho-1.
La salida consistirá de palabras separadas por un solo carácter ' ' o 'n' dependiendo si ahí termina una línea. Los ' ' y 'n' cuentan como caracteres de la línea inmediatamente anterior. No habrá espacios extra al principio de la salida. El último carácter de la salida es el 'n' de la última línea. La memoria para la cadena devuelta será pedida con new[]. Es responsabilidad del cliente de la función devolver esta memoria al sistema.
Si alguien puede ayudar porque realmente estoy medio perdido. Necesitaria el codigo en c. Cualquier duda solo preguntar. GRACIAS.