Pe faleza râului Prahova primarul oraşului Ploieşti a plantat un şir de N
arbuşti ornamentali de diverse soiuri, fiecare arbust i
având iniţial înălţimea height[i]
, 1 ≤ i ≤ N
. În funcţie de solul în care este plantat şi de vreme, arbustul i
creşte zilnic cu înălţimea dailyGrowth[i]
.
În fiecare zi grădinarul primăriei ajustează, prin tăiere cu o foarfecă, înălţimea arbuştilor. Totuşi, grădinarul este limitat de detaliile tehnice ale foarfecii. Astfel, acesta poate tăia la o tăietură exact x
centimetri din înălţimea unui arbust dacă înălțimea este cel puțin x
(de notat faptul că arbustul poate ajunge la înălțimea 0
după o tăietură). Pentru a nu se obosi, grădinarul poate să efectueze într-o zi cel mult k
tăieturi. Grădinarul poate să efectueze mai multe tăieturi asupra unui arbust într-o zi.
Atenție! În fiecare zi arbustul întâi crește și apoi se fac tăierile.
Cerința
Primarul organizează după M
zile un eveniment artistic şi doreşte să aflaţi care este înălţimea minimă a celui mai înalt arbust după cele M
zile.
Date de intrare
De la tastatură se citesc de pe prima linie numerele naturale N
, M
, k
şi x
. Pe următoarele N
linii se află câte două numere naturale height[i]
şi dailyGrowth[i]
, separate prin spaţiu.
Date de ieșire
Afișați la ecran un număr nenegativ reprezentând înălţimea minimă a celui mai înalt arbust după cele M
zile.
Restricții și precizări
1 ≤ k ≤ 1.000
1 ≤ x ≤ 10.000
0 ≤ height[i] ≤ 10.000
0 ≤ dailyGrowth[i] ≤ 10.000
- Pentru 8 puncte,
N ≤ 100
,M = 1
,k = 1
,x = 1
,height[i] ≥ 1
,dailyGrowth[i] = 0
- Pentru 22 puncte,
1 ≤ N, M ≤ 500
- Pentru 43 puncte,
1 ≤ N, M 5.000
- Pentru 27 puncte,
1 ≤ N, M ≤ 10.000
Exemplu:
Intrare
4 3 4 3 2 5 3 2 0 4 2 8
Ieșire
8
Explicație
Grădinarul taie arbuştii în 3
zile, în fiecare zi făcând câte 4
tăieturi. La fiecare tăietură poate elimina câte 3
cm din înălţimea arbustului. Următorul tabel ilustrează modul optim de efectuare a tăierilor: