팀워크
면접 대비시간 제한2초메모리 제한512 MB
K마리 이하의 연속한 소로 한 팀을 이뤄 팀당 최대 실력으로 값을 합산할 때, 그 합을 최대로 만들 분할을 찾습니다.
문제
농부 존은 가장 좋아하는 명절을 맞아 친구들에게 선물을 보내려고 한다. 그런데 선물 포장을 잘하지 못해서 소들의 도움을 받기로 했다. 짐작하겠지만 소들도 선물 포장을 잘하지 못한다. 농부 존은 이 사실을 곧 뼈저리게 깨닫게 된다.
농부 존의 소 마리()가 한 줄로 서 있고, 순서대로 번이 붙어 있다. 소 의 선물 포장 실력은 이다. 실력 차이가 꽤 클 수 있기 때문에 FJ는 소들을 팀으로 묶기로 했다. 팀은 연속한 소 최대 마리로 구성할 수 있으며(), 한 소가 둘 이상의 팀에 속할 수는 없다. 소들은 서로에게 배우므로, 팀에 속한 각 소의 실력은 그 팀에서 가장 실력이 좋은 소의 실력으로 바뀔 수 있다.
FJ가 팀을 적절히 구성해서 얻을 수 있는 실력 합의 최댓값을 구해 주자.
입력
첫째 줄에 과 가 주어진다. 다음 개 줄에 소들이 서 있는 순서대로 마리의 실력이 주어진다. 각 실력은 이하인 양의 정수이다.
출력
FJ가 연속한 소들을 적절히 팀으로 묶어서 얻을 수 있는 실력 합의 최댓값을 출력한다.
힌트
이 예에서 최적해는 처음 세 마리와 마지막 세 마리를 묶고, 가운데 소는 혼자 한 팀으로 두는 것이다(팀의 크기가 보다 작아도 된다는 점을 기억하자). 그러면 7마리의 실력이 15, 15, 15, 9, 10, 10, 10이 되고, 합은 84이다.