Fişierul intrare/ieşire:chain.in, chain.outSursăConcurs Shumen juniori 2017
AutorAutor NecunoscutAdăugată despatarelSpatarel Dan-Constantin spatarel
Timp execuţie pe test1 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise

Chain

Se dă o secvenţă de N numere întregi a1, a2, ..., an. Pentru fiecare element ak (1 ≤ k ≤ n) vom determina primul element mai mare decât ak, dacă există. Îl notăm cu ak1. Apoi, pentru ak1 facem acelaşi lucru şi elementul găsit îl notăm cu ak2 şi aşa mai departe până ieşim în afara şirului. Se formează secvenţa ak1, ak2, ..., pe care o numim chain începând cu poziţia k.

Scrieţi un program care, pentru orice poziţie k afişează lungimea secvenţei chain corespunzătoare.

Date de intrare

Fişierul de intrare chain.in conţine pe prima linie valoarea N. Pe a doua linie se dau elementele şirului, separate prin spaţii.

Date de ieşire

Fişierul de ieşire chain.out va conţine ş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

  • 0 < N < 500 000
  • 0 < ai < 1 000 000, pentru fiecare 1 ≤ i ≤ N

Exemplu

chain.inchain.out
11
3 2 4 2 11 2 7 5 8 10 6
2 2 1 1 0 3 2 2 1 0 0
Trebuie sa te autentifici pentru a trimite solutii. Click aici