Rakett | 프로그래밍의 벗 PivotOJ
PivotOJ

Rakett

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2019-20 sel1BOJ 29930

문제

Marslased ehitavad uut kosmoseraketti. See koosneb NN moodulist, mis on liinil reas ja nummerdatud järjest 1N1 \ldots N. Moodulisse number ii mahub AiA_i liitrit kütust, kusjuures moodulite mahutavused on paarikaupa erinevad.

Nüüd tuleb moodulitest koostada KK astet, millest igaüks koosneb ühest või mitmest järjestikusest moodulist nii, et iga moodul kuulub täpselt ühe astme koosseisu. Teisisõnu on vaja moodulite massiiv AA jagada KK mittetühjaks lõiguks.

Viimasel hetkel avastati, et rakett lendab kõige kiiremini, kui moodulid on igas astmes järjestatud mahtude kasvamise järjekorras. Moodulid on suured ja rasked ning seetõttu kulub kahe kõrvuti\-oleva mooduli omavahel vahetamiseks terve tund ja üksteisest kaugemaid mooduleid omavahel vahetada ei saagi.

Kirjutada programm, mis leiab minimaalse vahetuste arvu, mille järel on võimalik moodulid jagada KK astmeks nii, et igas astmes on moodulid kasvavas järjekorras.

입력

Tekstifaili esimesel real on tühikuga eraldatud täisarvud NN ja KK (1KN20001 \le K \le N \le 2\,000): vastavalt moodulite ja raketi astmete arv.

Faili teisel real on NN tühikutega eraldatud täisarvu AiA_i (1Ai1091 \le A_i \le 10^9): moodulite mahutavused nende numbrite järjekorras. Võib eedada, et arvud AiA_i on paarikaupa erinevad.

출력

Tekstifaili väljastada üks täisarv: minimaalne moodulite ümberjärjestamiseks kuluv aeg.

예제

예제 1

입력
10 3
9 30 45 2 5 7 10 3 16 22
출력
0

예제 2

입력
7 3
7 6 5 4 3 2 1
출력
5

예제 3

입력
5 2
1 4 2 5 3
출력
1
코드를 제출하려면 로그인하세요.