Rakett

면접 대비

시간 제한1초메모리 제한1024 MB

요약
서로 다른 모듈 크기의 순열이 주어질 때, 인접한 원소를 교환하여 K개의 증가하는 연속 구간으로 나눌 수 있게 만드는 최소 교환 횟수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

Marslased ehitavad uut kosmoseraketti. See koosneb NN moodulist, mis on liinil reas ja nummerdatud järjest 1…N1 \ldots N. Moodulisse number ii mahub A_iA\_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 (1≤K≤N≤2,0001 \le K \le N \le 2\\,000): vastavalt moodulite ja raketi astmete arv.

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

출력

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

예제3

  1. 예제 1

    입력
    10 3
    9 30 45 2 5 7 10 3 16 22
    
    예상 출력
    0
    
  2. 예제 2

    입력
    7 3
    7 6 5 4 3 2 1
    
    예상 출력
    5
    
  3. 예제 3

    입력
    5 2
    1 4 2 5 3
    
    예상 출력
    1