Jada kustutamine

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

요약
배열을 연속한 구간으로 나누어 각 구간의 mex를 이어 붙인 수열이 사전순으로 최대가 되게 하고, 그 수열을 출력한다.
난이도

어려움10점 중 8점

유형
그리디, 배열, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

Me kõik tunneme funktsioone min⁡\min ja max⁡\max, mis leiavad vastavalt vähima ja suurima hulka kuuluva väärtuse. Vaatleme nüüd funktsiooni mex\text{mex}, mis arvu\-hulgale rakendatuna tagastab minimaalse hulka mittekuuluva mittenegatiivse täisarvu (funktsiooni nimi tulebki ingliskeelsest väljendist minimal excluded). Näiteks mex(1,2,3)=0\text{mex}(\\{1,2,3\\}) = 0 ja mex(0,1,2,4,5)=3\text{mex}(\\{0,1,2,4,5\\}) = 3.

Magnus tutvus funktsiooni mex\text{mex} definitsiooniga ja leiutas kohe sellel põhineva mängu. Selles mängus saab mängija NN-elemendilise mittenegatiivsete täisarvude jada AA ja koostab selle põhjal jada BB, korrates järgmisi samme, kuni jadas AA on veel elemente:

  1. Vali positiivne täisarv kk, mis ei ületa jada AA pikkust.
  2. Lisa jada BB lõppu jada AA esimese kk elemendi mex\text{mex}.
  3. Kustuta jadast AA selle esimesed kk elementi.

Mängija ülesanne on valida igal sammul selline kk väärtus, et saadud jada BB oleks kõigi võimalike hulgas leksikograafiliselt maksimaalne. Tuletame meelde, et jada x=x_1,x_2,…,x_nx = x\_1, x\_2, \ldots, x\_n on jadast y=y_1,y_2,…,y_my = y\_1, y\_2, \ldots, y\_m leksikograafiliselt suurem, kui

  • leidub selline ii, et i≤ni \le n ja i≤mi \le m ning x_1=y_1x\_1 = y\_1, x_2=y_2x\_2 = y\_2, …\ldots, x_i−1=y_i−1x\_{i-1} = y\_{i-1} ja x_i>y_ix\_i > y\_i või
  • n>mn > m ja x_1=y_1x\_1 = y\_1, x_2=y_2x\_2 = y\_2, …\ldots, x_m=y_mx\_m = y\_m.

입력

Sisendi esimesel real on jada AA pikkus NN (1≤N≤500,0001 \le N \le 500\\,000) ja teisel real NN tühikutega eraldatud täisarvu: jada AA elemendid A_iA\_i (0≤A_i≤N0 \le A\_i \le N).

출력

Väljundi esimesele reale väljastada leitud jada BB pikkus MM ja teisele reale tühikutega eraldatult jada BB elemendid B_1,B_2,…,B_MB\_1, B\_2, \ldots, B\_M.

예제2

  1. 예제 1

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

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