Fişierul intrare/ieşire:codat.in, codat.outSursăONI 2014 clasa a 7-a
AutorAutor NecunoscutAdăugată deStefanPitur8B Stefan Pitur StefanPitur
Timp execuţie pe test2 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Codat (clasa a 7-a)

Se consideră un şir de N numere naturale, notate x1, x2, x3, ..., xN. Definim pentru orice pereche de indici i, j, 1 ≤ i ≤ j ≤ N, distanţa între elementele xi si xj ca fiind egală cu j - i.

Acest şir va fi codificat după următoarele reguli:

  • fiecare element din şir este înlocuit cu indicele celui mai apropiat element din şir (cel faţă de care distanţa este minimă) strict mai mare decât el;
  • dacă pentru un element din şir există două elemente care respectă regula de mai sus, atunci el va fi înlocuit cu indicele mai mare, adică al elementului strict mai mare decât el, aflat în dreapta lui;
  • elementele de valoare maximă din şir vor fi înlocuite cu -1.

Cerinta

Scrieţi un program care codifică un şir de N valori, după regulile descrise.

Date de intrare

Fişierul de intrare codat.in contine:

  • pe prima linie numărul natural N
  • pe următoarea linie N numere naturale nenule, separate prin câte un spaţiu, reprezentând şirul x1, x2, x3, ..., xN

Date de ieşire

Fişierul codat.out va conţine pe prima linie N numere întregi nenule, separate prin câte un spaţiu, reprezentând şirul codificat.

Restricţii

  • 1 ≤ N ≤ 1000000
  • 1 ≤ xi ≤ 2000000000, 1 ≤ i ≤ N

Exemplu

codat.incodat.out
7
2 9 3 5 1 1 4
2 -1 4 2 4 7 4

Explicaţie

  • x1=2: cel mai apropiat element strict mai mare decât el este x2
  • x2=9: nu are nici un element mai mare decât el
  • x3=3: elementele mai mari strict decât el, sunt aflate la distanţă egală, deci va fi înlocuit cu indicele mai mare adică 4
  • x4=5: cel mai apropiat element strict mai mare decât el este x2
  • x5=1: cel mai apropiat element strict mai mare decât el este x4
  • x6=1: cel mai apropiat element strict mai mare decât el este x7
  • x7=4: cel mai apropiat element strict mai mare decât el este x4
Trebuie sa te autentifici pentru a trimite solutii. Click aici