Bunicul GrandPa (abreviat GP) a fost foarte pasionat de concursurile de algoritmică. În tinerețe, acesta a participat la N
prestigioase competiții, iar la fiecare dintre ele a reușit să se claseze pe prima poziție și să câștige câte un trofeu. Pentru a le identifica mai ușor, bunicul le-a atribuit trofeelor câte un număr între 1
și N
, astfel încât oricăror două trofee distincte le-au fost atribuite numere distincte.
Cele N
trofee stau acum aranjate în casa bunicului pe raftul A
. Cel de-al i
-lea trofeu (1 ≤ i ≤ N
), în ordine de la stânga la dreapta, este cel cu numărul P[i]
. Bunicul va fi vizitat în curând de nepoți, pe care vrea să îi impresioneze cu trofeele sale. De aceea, el va muta trofeele de pe raftul A
pe raftul B
(care este inițial gol), prin aplicarea repetată a următoarei operații:
- Se alege fie trofeul cel mai din stânga de pe raftul
A
, fie trofeul cel mai din dreapta de pe raftulA
. - Acest trofeu este mutat pe raftul
B
, fie la stânga tuturor trofeelor deja aflate pe raftulB
, fie la dreapta acestora. Dacă raftulB
este gol, trofeul se poate așeza oriunde.
Această operație se va aplica până când raftul A
devine gol, iar toate trofeele au fost mutate pe raftul B
.
După ce se efectuează toate mutările, fie Q[i]
(1 ≤ i ≤ N
) cel de-al i
-lea trofeu de pe raftul B
, în ordine de la stânga la dreapta. Pentru a-și impresiona nepoț ii, bunicul dorește să efectueze operațiile de mutare astfel încât șirul Q
să fie mai mare lexicografic decât orice alt șir Q'
care s-ar putea obține prin metoda descrisă. Aflați acest șir Q
maxim lexicografic.
Date de intrare
Pe prima linie a fișierului de intrare se va găsi valorea N
. Pe cea de-a doua linie se vor găsi P[1], ... , P[N]
.
Date de ieșire
Se va afișa o singură linie, ce conține Q[1], ... , Q[N]
.
Restricții și precizări
1 ≤ N ≤ 100 000
1 ≤ P[i] ≤ N
P[i] ≠ P[j]
pentrui ≠ j
- Un șir
A
de lungimeK
este mai mare lexicografic decât un șirB
de lungimeK
dacă există o pozițiep
(1 ≤ p ≤ K
) astfel încâtA[p] > B[p]
șiA[i] = B[i]
pentru orice1 ≤ i < p
.
Subtask 1 (6 puncte)
N ≤ 10
Subtask 2 (7 puncte)
N ≤ 18
Subtask 3 (25 puncte)
N ≤ 100
Subtask 4 (13 puncte)
N ≤ 1000
Subtask 5 (14 puncte)
P[1] = N − 1 și P[N] = N
Subtask 6 (35 puncte)
- Fără restricții suplimentare.
Exemple
stdin
4
3 2 4 1
stdout
4 3 2 1
stdin
6
1 4 2 6 5 3
stdout
6 5 4 3 1 2
stdin
10
9 7 8 5 1 4 2 3 6 10
stdout
10 9 7 8 6 5 3 2 4 1
Explicații
În primul exemplu, rafturile au următoarele stări:
Raftul A | Raftul B |
---|---|
3 2 4 1 | |
2 4 1 | 3 |
4 1 | 3 2 |
4 | 3 2 1 |
4 3 2 1 |
În al doilea exemplu, rafturile au următoarele stări:
Raftul A | Raftul B |
---|---|
1 4 2 6 5 3 | |
4 2 6 5 3 | 1 |
4 2 6 5 | 3 1 |
2 6 5 | 4 3 1 |
6 5 | 4 3 1 2 |
6 | 5 4 3 1 2 |
6 5 4 3 1 2 |