Cerința
Se dă un șir de n
numere întregi a = (a[1], a[2], ..., a[n])
. Trebuie să construiți un nou vector b
de lungime n
în care valorile sunt cuprinse între 1
și n
astfel: toate elementele a[i]
care memorează valoarea minimă se înlocuiesc în b[i]
cu 1
, toate elementele a[j]
imediat mai mari decât minimele se înlocuiesc în b[j]
cu 2
, ș.a.m.d. De exemplu, dacă a = (7,-3,1,-55,20,7,-3,1)
, atunci b = (4,2,3,1,5,4,2,3)
. Se observă că valoarea minimă -55
apare o singură dată la poziția 4
, deci b[4] = 1
, valoarea imediat mai mare decât minimul este -3
deci b[2] = 2
și b[7] = 2
, următoarea valoare este 1
, deci b[4] = 3
și b[8] = 3
. Urmează valoarea 7
, deci b[1] = 4
și b[6] = 4
. În fine, cea mai mare valoare este 20
și va fi marcată în b
cu 5
.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi șirul a
de n
numere întregi, separate prin spații.
Date de ieșire
Programul va afișa pe ecran, separate prin spații, cele n
elemente ale șirului b
.
Restricții și precizări
1 ≤ n ≤ 100.000
- cele
n
elemente ale șiruluia
vor fi întregi din intervalul[-2.000.000.000, 2.000.000.000]
Exemplu:
Intrare
8 7 -3 1 -55 20 7 -3 1
Ieșire
4 2 3 1 5 4 2 3