codat

Time limit: 0.3s Memory limit: 32MB Input: codat.in Output: codat.out

Se consideră un șir de NN numere naturale, notate x1,x2,x3,...,xNx_1, x_2, x_3, ..., x_N. Definim pentru orice pereche de indici i,j,1ijNi, j, 1 \leq i \leq j \leq N, distanța între elementele xix_i și xjx_j ca fiind egală cu j – ij \ – \ 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-1.

Cerinţă

Scrieți un program care codifică un șir de NN valori, după regulile descrise.

Date de intrare

Fișierul de intrare codat.in conține:

  • pe prima linie numărul natural NN
  • pe următoarea linie NN numere naturale nenule, separate prin câte un spaţiu, reprezentând șirul x1,x2,x3,...,xNx_1, x_2, x_3, ..., x_N

Date de ieşire

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

Restricţii şi precizări

  • 1N1 000 0001 \leq N \leq 1 \ 000 \ 000
  • 1xi2 000 000 000,1iN1 \leq x_i \leq 2 \ 000 \ 000 \ 000, 1 \leq i \leq N

Exemplu

codat.in

7
2 9 3 5 1 1 4

codat.out

2 -1 4 2 4 7 4

Explicație

x1=2x_1 = 2: cel mai apropiat element strict mai mare decât el este x2x_2
x2=9x_2 = 9: nu are nici un element mai mare decât el
x3=3x_3 = 3: elementele mai mari strict decât el, sunt aflate la distanță egală, deci va fi înlocuit cu indicele mai mare adică 44
x4=5x_4 = 5: cel mai apropiat element strict mai mare decât el este x2x_2
x5=1x_5 = 1: cel mai apropiat element strict mai mare decât el este x4x_4
x6=1x_6 = 1: cel mai apropiat element strict mai mare decât el este x7x_7
x7=4x_7 = 4: cel mai apropiat element strict mai mare decât el este x4x_4

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