로켓
시간 제한1초메모리 제한1024 MB
서로 다른 값 N개로 된 배열을 K개의 연속 구간으로 나눌 때, 각 구간 안의 역순쌍 수의 합이 최소가 되는 값을 구합니다.
문제
화성인들이 새로운 우주 로켓을 만들고 있다. 로켓은 한 줄로 늘어선 개의 모듈로 이루어지며, 앞에서부터 까지 순서대로 번호가 붙어 있다. 모듈 에는 리터의 연료가 들어가며, 모든 모듈의 용량은 서로 다르다.
모듈은 개의 단계로 묶어야 한다. 각 단계는 연속된 모듈 한 개 이상으로 이루어지고, 모든 모듈은 정확히 한 단계에만 속한다. 즉, 배열 를 비어 있지 않은 연속 구간 개로 나눠야 한다.
마지막 순간에 로켓이 가장 빨리 난다는 사실이 밝혀졌다. 각 단계 안에서 모듈이 용량의 오름차순으로 정렬되어 있을 때다. 모듈은 크고 무거워서 인접한 두 모듈을 맞바꾸는 데 한 시간이 걸리고, 서로 이웃하지 않은 모듈끼리는 맞바꿀 수 없다.
각 단계의 모듈이 용량 오름차순이 되도록 개의 단계로 나눌 수 있게 하는 최소 교환 횟수를 구하는 프로그램을 작성하라.
입력
첫 줄에는 모듈의 개수 과 로켓 단계의 개수 가 공백으로 구분되어 주어진다().
둘째 줄에는 번호 순서대로 모듈의 용량 가 공백으로 구분되어 개 주어진다(). 모든 는 서로 다르다.
출력
모듈을 재배열하는 데 드는 최소 시간을 정수 하나로 출력한다. 시간 단위는 시간이다.