weekend

Time limit: 0.5s Memory limit: 32MB Input: weekend.in Output: weekend.out

În acest weekend tocmai s-au pus în vânzare bilete pentru concertul celui mai în vogă artist. Cum acesta este extrem de popular, un număr de nn persoane s-au așezat la coadă la casa de bilete. Pentru simplitate, prima persoană așezată la coadă va avea indicele 11, a doua va avea indicele 22 și așa mai departe.

Deoarece statul la coadă este extrem de plictisitor, fiecare om a început să numere câte persoane mai scunde decât el se află în fața sa. Se cunoaște că înălțimile oamenilor sunt reprezentate cu numere naturale nenule.

Din lipsă de imaginație, oamenii care stau la coadă nu au reușit sa ducă jocul până la capăt, așa că o vom face noi. Cunoscând câte persoane mai scunde decât el are în față fiecare om care stă la coadă, se cere să se determine înălțimea fiecărui om din șir.

Dacă există mai multe soluții valide, se cere afișată soluția minim lexicografică. Dacă există două șiruri valide de înălțimi ale celor nn persoane A1,A2,...,AnA_1, A_2, ..., A_n și B1,B2,...,BnB_1, B_2, ..., B_n spunem că șirul AA este mai mic lexicografic decât BB dacă există un număr natural ii mai mic sau egal cu nn, astfel încât Ai<BiA_i \lt B_i și Aj=BjA_j = B_j, oricare ar fi j{1,2,...,i1}j \in \{1,2,...,i-1\}.

Cerință

Fiind dat șirul inițial de observații ale oamenilor care stau la coadă, să se reconstruiască șirul minim lexicografic care poate reprezenta înălțimile acestora.

Date de intrare

În fișierul weekend.in se va afla pe prima linie numărul nn. Pe linia a doua se va afla un șir de nn numere naturale despărțite printr-un spațiu, valoarea aflată pe poziția ii semnificând numărul de persoane strict mai scunde decât persoana ii și cu indice mai mic decât ii.

Date de ieșire

În fișierul weekend.out se va afișa șirul înălțimilor. Pe linia a i-a din fișierul de ieșire se va afla înălțimea persoanei cu indicele i.

Restricții și precizări

  • Se garantează că setul de date este corect și va exista mereu cel puțin o soluție;
  • Două sau mai multe persoane NU pot avea aceeași înălțime;
  • 1N200 0001 \leq N \leq 200 \ 000;
  • Pentru 40% din teste: N5 000N \leq 5 \ 000.

Exemplu

weekend.in

4
0 1 1 0

weekend.out

2
4
3
1

Explicație

Observăm că acesta este cel mai mic șir lexicografic care satisface șirul de observații din input.

O altă soluție ar fi fost șirul 2 5 3 1, dar acesta este mai mare lexicografic.

Log in or sign up to be able to send submissions!