Ir al contenido principal

Actualización de «Máxima suma de los segmentos»

He actualizado las soluciones del ejercicio «Máxima suma de los segmentos» cuyo enunciado es


Un segmento de una lista xs es una sublista de xs formada por elementos consecutivos en la lista. El problema de la máxima suma de segmentos consiste en dada una lista de números enteros calcular el máximo de las sumas de todos los segmentos de la lista. Por ejemplo, para la lista [-1,2,-3,5,-2,1,3,-2,-2,-3,6] la máxima suma de segmentos es 7 que es la suma del segmento [5,-2,1,3] y para la lista [-1,-2,-3] es 0 que es la suma de la lista vacía.

Definir la función

mss :: [Integer] -> Integer

tal que (mss xs) es la máxima suma de los segmentos de xs. Por ejemplo,

mss [-1,2,-3,5,-2,1,3,-2,-2,-3,6]  ==  7
mss [-1,-2,-3]                     ==  0
mss [1..500]                       ==  125250
mss [1..1000]                      ==  500500
mss [-500..3]                      ==  6
mss [-1000..3]                     ==  6
mss [1..10^2]                      ==  5050
mss [1..10^3]                      ==  500500
mss [1..10^4]                      ==  50005000
mss [1..10^5]                      ==  5000050000
mss [1..10^6]                      ==  500000500000
mss [1..10^7]                      ==  50000005000000

Nota: Puedes consultar las soluciones aquí.