Cerința
Cum găsește căprioara apa rece de izvor, tot așa găsesc eu banii și în vârful munților! – Jany MooRANDy
A trecut așa mult timp de când bombardierul vostru favorit Jany MooRANDy a vizitat Himalaya și dușmanii lui au început să-i conteste abilitățile sale de a face bani. Nu vă faceți probleme, el a ajuns înapoi în Himalaya să demonstreze înca o dată de ce este în stare: “Să bată vântul și ploaia, eu fac bani și-n Himalaya! Unde fac eu bani pachete, dușmanii culeg doar pietre!”. După ce a obținut doctoratul în fizică demonstrând astfel multiplele sale abilități, el a schimbat “legea conservării energiei” în “legea conservării valorii”.
Legea spune așa: Valoarea cinetică a unui obiect e egală cu m * v * v / 2
, unde m
e masa obiectului și v
e viteza lui, iar valoarea potențială a obiectului este m * g * h
, unde m
e masa obiectului, g
e accelerația gravitațională, pe care o presupunem ca fiind 10
, iar h
e diferența de înălțime dintre ea și un punct de referință.
Așa cum știm cu toții, Himalaya are n
vârfuri muntoase, situate într-o linie, al i-lea vârf având înălțimea h[i]
. Acum Jany MooRANDy vrea să încaseze banii câștigați de stațiile de telecabină din fiecare din cele n
vârfuri muntoase. Începând de la un vârf i
el se poate deplasa doar spre dreapta, spre vârful n
.
Deoarece el are multă valoare, el începe călătoria cu o valoare cinetică de m * v * v / 2
. Când sare din vârful i
către vârful i+1
, el fie câștigă, fie pierde valoare. Dacă h[i] ≥ h[i+1]
, el va câștiga m * g * (h[i] - h[i+1])
valoare, iar dacă h[i] < h[i+1]
, el va pierde m * g * (h[i+1] - h[i])
valoare. De-a lungul călătoriei, valoarea lui nu poate scădea sub 0
. Pentru ca el vrea să faca bani pachete, vrea să știe pentru fiecare punct de start care este cel mai depărtat punct spre care el se poate deplasa?
Date de intrare
Programul citește de la tastatură pe prima linie numerele n
, m
și v
, numărul de vârfuri, masa și viteza lui Jany MooRANDy.
Pe următoarea linie, se vor citi n
numere, reprezentând înălțimile celor n
vârfuri.
Date de ieșire
Programul va afișa pe ecran n
numere, reprezentând răspunsul cerut pentru fiecare vârf.
Restricții și precizări
1 ≤ n ≤ 500 000
1 ≤ m ≤
10
50
1 ≤ v ≤ 40 000
- cele
n
numere citite vor fi mai mici decât1.000.000.000
- Problema nu necesită cunoștinte de fizică pentru a fi rezolvată.
- Pentru teste în valoare de
30
de puncte,1 ≤ n ≤ 1000
,1 ≤ v ≤ 400
,1 ≤ m ≤
10
9
- Pentru alte teste în valoare de
30
de puncte,1 ≤ n ≤ 1000
Exemplu:
Intrare
9 2 7 3 2 1 5 3 3 8 2 1
Ieșire
6 3 3 6 6 6 9 9 9
Explicație
Hai să vedem de ce ans[1] = 6
.
El pornește din primul vârf cu valoare cinetică de 49
.
De la vârful 1
la vârful 2
, valoarea lui crește cu 20
, deci devine 69
.
De la vârful 2
la vârful 3
, valoarea lui crește cu 20
, deci devine 89
.
De la vârful 3
la vârful 4
, valoarea lui scade cu 80
, deci devine 9
.
De la vârful 4
la vârful 5
, valoarea lui crește cu 40
, deci devine 49
.
De la vârful 5
la vârful 6
, valoarea lui rămâne la 49
.
De la vârful 6
la vârful 7
, valoarea lui scade cu 100
, deci devine -51
, așa că nu mai poate continua drumul.
Astfel, Jany poate ajunge de la vârful 1
la vârful 6
.