Peste un mic râu care se varsă într-un mare râu, într-un oraș din inima munților, există N pietre, numerotate de la 1 la N. Un grup de copii obișnuiește să nu aleagă calea ușoară, așa că trebuie să sară peste cele N pietre, pentru a ajunge pe partea cealaltă.
Pentru fiecare dintre aceste pietre, se cunoaște înălțimea sa, notată în continuare cu h[i]. Prietenii pot să aleagă să sară anumite pietre, pentru a minimiza efortul necesar traversării râului. Formal, de pe piatra cu indicele i aceștia pot să ajungă pe toate pietrele numerotate cu indicii i + 1, i + 2, …, min(N,i + K). Efortul necesar pentru a sări de pe piatra i pe piatra j este dat de formula \( \left[ \sqrt[ 3 ]{h[i]-h[j]} \right] + C \), unde C este o constantă.
Cerința
Să se calculeze efortul minim de a ajunge de la prima piatră la ultima.
Date de intrare
Pe prima linie din fișierul rau.in se află trei numere naturale N, K, C. Pe a doua linie din fișierul de intrare se află numerele h[i], pentru i de la 1 la N.
Date de ieșire
Fișierul de ieșire rau.out va conţine efortul minim calculat.
Restricții și precizări
1 ≤ K < N ≤ 50.000,1 ≤ C ≤ 10.0001 ≤ h[i] ≤ 400.000- Pentru calculul rădăcinii de ordin 3 se poate folosi
cbrt(double)din bibliotecacmath, în C++ - Pentru 15% din teste,
N ≤ 1000 - Pentru alte 25% din teste,
N * max(h[i]) ≤ 10.000.000șiK = N - 1
Exemplu:
rau.in
5 2 1 4 12 37 10 10
rau.out
6
Explicație
Drumul este : 4 -> 12 -> 10 - > 10.
Costul de a ajunge pe 12 este \( [\sqrt[ 3 ]{8}] + 1 = 3\).
Costul de a ajunge pe 10 este \( [\sqrt[ 3 ]{2}] + 1 = 2\).
Costul de a ajunge pe ultimul 10 este \( [\sqrt[ 3 ]{0}] + 1 = 1\).
Drumul 4 -> 37 -> 10 ar fi 4 + 4 = 8