| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB | 4 | 2 | 2 | 50.000% |
Me kõik tunneme funktsioone $\min$ ja $\max$, mis leiavad vastavalt vähima ja suurima hulka kuuluva väärtuse. Vaatleme nüüd funktsiooni $\text{mex}$, mis arvu\-hulgale rakendatuna tagastab minimaalse hulka mittekuuluva mittenegatiivse täisarvu (funktsiooni nimi tulebki ingliskeelsest väljendist minimal excluded). Näiteks $\text{mex}(\{1,2,3\}) = 0$ ja $\text{mex}(\{0,1,2,4,5\}) = 3$.
Magnus tutvus funktsiooni $\text{mex}$ definitsiooniga ja leiutas kohe sellel põhineva mängu. Selles mängus saab mängija $N$-elemendilise mittenegatiivsete täisarvude jada $A$ ja koostab selle põhjal jada $B$, korrates järgmisi samme, kuni jadas $A$ on veel elemente:
Mängija ülesanne on valida igal sammul selline $k$ väärtus, et saadud jada $B$ oleks kõigi võimalike hulgas leksikograafiliselt maksimaalne. Tuletame meelde, et jada $x = x_1, x_2, \ldots, x_n$ on jadast $y = y_1, y_2, \ldots, y_m$ leksikograafiliselt suurem, kui
Sisendi esimesel real on jada $A$ pikkus $N$ ($1 \le N \le 500\,000$) ja teisel real $N$ tühikutega eraldatud täisarvu: jada $A$ elemendid $A_i$ ($0 \le A_i \le N$).
Väljundi esimesele reale väljastada leitud jada $B$ pikkus $M$ ja teisele reale tühikutega eraldatult jada $B$ elemendid $B_1, B_2, \ldots, B_M$.
5 1 0 2 0 3
1 4
Leksikograafiliselt maksimaalse jada $B$ saamiseks tuleb kohe esimesel sammul valida $k = 5$ ja rakendada funktsiooni $\text{mex}$ kogu jadale $A$. Tulemus on kõigi võimalike hulgas leksikograafiliselt maksimaalne, sest mistahes $k < 5$ valimisel saame jada $B$, mis algab $4$-st väiksema arvuga, ja iga $4$-st väiksema arvuga algav jada on leksikograafiliselt väiksem kui leitud $B$.
8 2 2 3 4 0 1 2 0
2 5 1
Leksikograafiliselt maksimaalse jada $B$ saamiseks on kaks võimalust: võib valida algul $k = 6$ ja siis $k = 2$ või algul $k = 7$ ja siis $k = 1$.