탈옥
시간 제한2초메모리 제한512 MB
L개의 감방을 최대 G개의 연속한 구간으로 나눌 때, 각 감방의 탈출력과 소속 구간 길이의 곱을 모두 더한 값을 최소로 만든다.
문제
칸 개가 일렬로 놓인 감옥이 있다. 칸에는 1번부터 번까지 번호가 붙어 있고, 번 칸에는 죄수가 한 명씩 들어 있다. 번 칸에 있는 죄수의 탈옥력은 이며, 탈옥력은 죄수가 탈옥하는 능력을 수치로 나타낸 값이다.
가장 이상적인 감시 방법은 칸마다 간수를 한 명씩 두어서 간수 한 명이 죄수 한 명만 감시하는 것이다. 하지만 예산 때문에 이 감옥은 간수를 최대 명까지만 고용할 수 있다. 탈옥 위험도가 가장 작아지도록 간수를 고용해서 배치하려고 한다.
간수 한 명은 번호가 연속한 칸만 감시하고, 모든 칸은 정확히 한 명의 간수가 감시한다. 번 칸의 탈옥 위험도 는 탈옥력 에 번 칸을 맡은 간수가 감시하는 죄수 수를 곱한 값이다. 감옥의 탈옥 위험도는 모든 칸의 를 더한 값이다.
과 , 각 칸에 있는 죄수의 탈옥력 가 주어질 때 탈옥 위험도의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 감옥의 크기 과 간수의 수 가 공백으로 구분되어 주어진다. (, )
둘째 줄에 이 공백으로 구분되어 주어진다. ()
출력
첫째 줄에 탈옥 위험도의 최솟값을 출력한다.
힌트
첫 번째 예제에서 한 간수가 1, 2, 3번 칸을, 다른 간수가 4, 5번 칸을, 남은 간수가 6번 칸을 감시하면 탈옥 위험도가 최소가 된다.
1, 2, 3번 칸을 맡은 간수는 죄수 세 명을 감시하므로 세 칸의 탈옥 위험도는 각각 이다.
4, 5번 칸을 맡은 간수는 죄수 두 명을 감시하므로 4번 칸은 , 5번 칸은 이다.
6번 칸을 맡은 간수는 죄수 한 명만 감시하므로 6번 칸은 이다. 모두 더하면 이다.