Se dă o secvență de N
numere întregi a
1
, a
2
, …, a
N
. Pentru fiecare element a
k
(k = 1, 2, ...,n
) vom determina primul element mai mare decât a
k
, dacă există. Îl notăm cu a
k1
. Apoi, pentru a
k1
facem același lucru și elementul găsit îl notăm cu a
k2
, și așa mai departe până ieșim în afara șirului. Se formează secvența a
k1
, a
k2
, …, pe care o numim chain începând cu poziția k
.
Cerința
Scrieți un program care, pentru orice poziție k
afișează lungimea secvenței chain corespunzătoare.
Date de intrare
Pe prima linie a intrării standard se dă valoarea N
. Pe a doua linie se dau elementele șirului, separate prin spații.
Date de ieșire
Pe o linie a ieșirii standard, programul va scrie șirul valorilor ce reprezintă lungimile secvențelor chain corespunzătoare elementelor șirului de intrare. Fiecare două numere consecutive trebuie separate printr-un singur spațiu.
Restricții și precizări
0 < N < 500.000
0 < a
i
< 1.000.000
, pentru fiecarei = 1..N
.
Exemplu:
Intrare
11 3 2 4 2 11 2 7 5 8 10 6
Ieșire
2 2 1 1 0 3 2 2 1 0 0