Jada kustutamine
시간 제한2초메모리 제한1024 MB
배열을 연속한 구간으로 나누어 각 구간의 mex를 이어 붙인 수열이 사전순으로 최대가 되게 하고, 그 수열을 출력한다.
문제
Me kõik tunneme funktsioone ja , mis leiavad vastavalt vähima ja suurima hulka kuuluva väärtuse. Vaatleme nüüd funktsiooni , mis arvu\-hulgale rakendatuna tagastab minimaalse hulka mittekuuluva mittenegatiivse täisarvu (funktsiooni nimi tulebki ingliskeelsest väljendist minimal excluded). Näiteks ja .
Magnus tutvus funktsiooni definitsiooniga ja leiutas kohe sellel põhineva mängu. Selles mängus saab mängija -elemendilise mittenegatiivsete täisarvude jada ja koostab selle põhjal jada , korrates järgmisi samme, kuni jadas on veel elemente:
- Vali positiivne täisarv , mis ei ületa jada pikkust.
- Lisa jada lõppu jada esimese elemendi .
- Kustuta jadast selle esimesed elementi.
Mängija ülesanne on valida igal sammul selline väärtus, et saadud jada oleks kõigi võimalike hulgas leksikograafiliselt maksimaalne. Tuletame meelde, et jada on jadast leksikograafiliselt suurem, kui
- leidub selline , et ja ning , , , ja või
- ja , , , .
입력
Sisendi esimesel real on jada pikkus () ja teisel real tühikutega eraldatud täisarvu: jada elemendid ().
출력
Väljundi esimesele reale väljastada leitud jada pikkus ja teisele reale tühikutega eraldatult jada elemendid .