| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 14 | 9 | 8 | 66.667% |
Marslased ehitavad uut kosmoseraketti. See koosneb $N$ moodulist, mis on liinil reas ja nummerdatud järjest $1 \ldots N$. Moodulisse number $i$ mahub $A_i$ liitrit kütust, kusjuures moodulite mahutavused on paarikaupa erinevad.
Nüüd tuleb moodulitest koostada $K$ 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 $A$ jagada $K$ 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 $K$ astmeks nii, et igas astmes on moodulid kasvavas järjekorras.
Tekstifaili esimesel real on tühikuga eraldatud täisarvud $N$ ja $K$ ($1 \le K \le N \le 2\,000$): vastavalt moodulite ja raketi astmete arv.
Faili teisel real on $N$ tühikutega eraldatud täisarvu $A_i$ ($1 \le A_i \le 10^9$): moodulite mahutavused nende numbrite järjekorras. Võib eedada, et arvud $A_i$ on paarikaupa erinevad.
Tekstifaili väljastada üks täisarv: minimaalne moodulite ümberjärjestamiseks kuluv aeg.
10 3 9 30 45 2 5 7 10 3 16 22
0
Moodulid võib jagada astmeteks näiteks nii: (9 30 45) (2 5 7 10) (3 16 22). Siis on moodulid igas astmes juba sobivas järjekorras ja mingit ümberjärjestamist polegi vaja.
7 3 7 6 5 4 3 2 1
5
Moodulid võib jagada astmeteks näiteks nii: (7 6 5) (4 3) (2 1). Siis saab esimese astme moodulid õigesse järjekorda panna kolme tunniga: (7 6 5) $\rightarrow$ (7 5 6) $\rightarrow$ (5 7 6) $\rightarrow$ (5 6 7). Teise astme saab õigesse järjekorda ühe tunniga: (4 3) $\rightarrow$ (3 4). Samuti ka kolmanda astme: (2 1) $\rightarrow$ (1 2). Kokku kulubki $3 + 1 + 1 = 5$ tundi.
5 2 1 4 2 5 3
1
Moodulid võib jagada astmeteks näiteks nii: (1 4) (2 5 3). Siis on vaja omavahel vahetada vaid kaks viimast moodulit, milleks kulubki ainult $1$ tund.