Teamwork.


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 128M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python, VB

Para su festividad favorita, el Granjero John quiere enviar regalos a sus amigos. Como no es muy bueno envolviendo regalos, quiere contar con la ayuda de sus vacas. Como era de esperar, las vacas no son mucho mejores para envolver regalos mismos, una lección que Farmer John está a punto de aprender por las malas.

Las N vacas del GJ ( 1 \leq N \leq 10^4 ) están todos parados en una fila, convenientemente numerado 1 ... n en orden. Vaca i tiene nivel de habilidad s_i envolviendo regalos. Estos niveles de habilidad pueden variar bastante, por lo que GJ decide combinar sus vacas en equipos. Un equipo puede consistir en cualquier conjunto consecutivo de hasta k vacas ( 1 \leq K \leq 10^3 ), y ninguna vaca puede formar parte de más de un equipo. Dado que las vacas aprenden unas de otras, el nivel de habilidad de cada vaca en un equipo puede ser reemplazado por el nivel de habilidad de la vaca más hábil en ese equipo.

Ayude a GJ a determinar la suma más alta posible de niveles de habilidad que puede alcanzar formando equipos de forma óptima.

Entrada

La primera línea de entrada contiene N y K . Las siguientes N líneas contienen el nivele de habilidad de las N vacas en el orden en que están de pie. Cada nivel de habilidad es un número entero positivo como máximo 10^5.

Salida

Escriba la suma más alta posible de niveles de habilidad que GJ puede lograr al agrupar grupos consecutivos apropiados de vacas en equipos.

Ejemplo de Entrada

7 3
1
15
7
9
2
5
10

Ejemplo de Salida

84

En este ejemplo, la solución óptima es agrupar las tres primeras vacas y las tres últimas, dejando la vaca del medio en un equipo por sí sola (recuerde que está bien tener equipos de tamaño inferior a K). Esto aumenta efectivamente los niveles de habilidad de las 7 vacas a 15, 15, 15, 9, 10, 10, 10, lo que suma 84.


Comments

There are no comments at the moment.