MOG Round #30Ended |
Fito se encuentra jugando con una secuencia de $n$ enteros no negativos. En el juego él tiene que particionar la secuencia en $k+1$ partes no vacías. Cada parte es una subsecuencia contigua de la secuencia inicial. Para obtener $k+1$ partes realiza el siguiente procedimiento $k$ veces:
Después de cada operación Fito obtiene una cantidad de puntos igual al producto de las sumas de cada una de las partes que crea en la operación. Tu misión es calcular la mayor cantidad total de puntos que Fito puede obtener en el juego.
La primera línea contiene dos enteros $n$ y $k$ ($2 \le n \le 100000$, $1 \le k \le \min(n-1,200)$). En la segunda línea aparecen $n$ enteros $a_1,a_2,\ldots,a_n$ ($0 \le a_i \le 10^4$) -- la secuencia.
En la primera línea de la salida imprima la mayor cantidad de puntos totales que Fito puede obtener. En la segunda líea imprima $k$ enteros entre $1$ y $n-1$ -- las posiciones por las que podría realizar una partición para lograr esos puntos. Si existe más de una solución imprima cualquiera.
Se pueden obtener $108$ puntos de la siguiente forma:
Al final tienes $4$ partes $(4)$, $(1,3)$, $(4,0)$, $(2,3)$ y ganaste: $72+16+20=108$ puntos.