Järjestamine | 프로그래밍의 벗 PivotOJ
PivotOJ

Järjestamine

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2017-18 sel2BOJ 29985

문제

Nimetame arvujada A1,A2,,ANA_1, A_2, \dots, A_N järjestatuks, kui iga 1i<N1 \le i < N korral kehtib AiAi+1A_i \le A_{i+1}.

Vaatleme järgmist meetodit arvujada järjestamiseks: kõigepealt tükeldatakse jada MM lõiguks (jada esimesed k1k_1 elementi moodustavad ühe lõigu, järgmised k2k_2 elementi teise j.n.e kuni viimased kMk_M elementi moodustavad viimase lõigu) ja edasi tohib omavahel vahetada terveid lõike, aga mitte muuta elementide järjekorda ühegi lõigu sees.

On selge, et mõnede lõikudeks jaotuste korral on jada järjestamine lõikude vahetamise teel võimalik (kindlasti saab iga NN-elemendilise jada järjestada selle NN lõiguks tükeldamise järel) ja mõnede korral ei ole (näiteks üheks lõiguks "tükeldamisel" ei saa järjestada ühtki jada, mis pole juba algselt järjestatud).

Kirjutada programm, mis leiab antud jada jaoks vähima arvu MM, mille korral leidub selline jada tükeldus MM lõiguks, et terve jada saab lõikude vahetamise teel järjestada.

입력

Tekstifaili esimesel real on jada elementide arv NN (1N5000001 \le N \le 500\,000) ja teisel real NN tühikutega eraldatud täisarvu: jada elemendid AiA_i (1AiN1 \le A_i \le N).

출력

Tekstifaili ainsale reale väljastada üks täisarv: minimaalne lõikude arv, milleks peab jada tükeldama, et selle saaks lõikude vahetamise teel järjestada.

예제

예제 1

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

예제 2

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