청소
시간 제한2초메모리 제한1024 MB
연속한 K개 구역을 골라 우선순위가 높은 순서대로 청소할 때, 연속한 청소 구역 사이 이동 거리 합의 최솟값을 구한다.
문제
준석이는 청소 업체에 다니고 있다. 준석이가 청소할 장소는 번부터 번까지 차례로 번호가 붙은 일렬의 개의 구역으로 나누어져 있다. 번 구역은 번과 번 구역과 인접해 있어, 두 인접한 구역 사이를 이동하려면 만큼 걸어야 한다.
각 구역에는 우선순위가 있다. 번 구역의 우선순위 는 이상 이하의 정수로 이 값이 클수록 우선순위가 높다. 임의의 두 구역의 우선순위는 항상 다르다.
준석이는 오늘 이 구역 중 개의 구역을 먼저 청소하려고 한다. 단, 준석이가 청소하는 개의 구역은 반드시 연속해야 한다. 또한 청소할 때 선택한 구역들 내에서는 우선순위가 높은 구역부터 낮은 구역 순서대로 이동하며 청소해야 한다.
두 구역이 멀리 떨어져 있으면 이동하는 시간이 오래 걸리기 때문에, 준석이는 이동 거리의 합이 최소화되도록 연속한 개의 구역을 선택하려고 한다. 이동 거리가 최소가 되도록 구역을 선택했을 때 총 이동 거리를 출력한다.
입력
첫째 줄에 청소할 구역의 길이 과 오늘 청소할 구역의 개수 가 공백으로 구분되어 주어진다.
둘째 줄에 각 구역의 우선순위 이 공백으로 구분되어 주어진다.
출력
개의 구역을 선택했을 때 가능한 총 이동 거리 중 최솟값을 출력한다.
제한
- 이면 이다.