Placinte
Nimic nu se compară cu plăcintele calde ieșite din cuporul bunicii! Alexa simte mirosul ispititor al bunătățurilor proaspete și coboară în bucătărie ca să descopere n
tipuri diferite de plăcinte. Unele sunt cu mere, altele cu vișine, altele cu brânză, în fine! Bunica ei a făcut câte o infinitate din fiecare tip. Dacă fata alege să mănânce un tip de plăcintă, ea îl mănâncă numai sub forma unui set. Un set de plăcinte de tipul i
este egal cu \( 2^{i-1} \). Fata cunoaște din experiență timpul \( T_i \) necesar pentru a mânca un set de plăcinte de tip i
.
Cerința
Știind că fata va mânca fără preferințe câte seturi de plăcinte va vrea din fiecare tip, să se calculeze timpul minim necesar pentru a mânca cel puțin k
plăcinte.
Date de intrare
Programul citește de la tastatură numerele n
, k
și apoi n
numere, reprezentând timpurile \( T_1,T_2,…,T_n \) necesare pentru a mânca un set din fiecare tip de plăcintă (în ordine, tipurile 1
, 2
, …, n
).
Date de ieșire
Programul va afișa pe ecran un singur număr, timplul minim necesar pentru a mânca cel puțin k
plăcinte.
Restricții și precizări
- \( 1 \leq n \leq 30 \)
- \( 1 \leq k, T_i \leq 10^9 \)
Exemple
Intrare
4 11 2 3 4 5
Ieșire
9
În acest exemplu, este mai avantajos să mănânce un set de plăcinte de tip 4
(adică 8 plăcinte) și un set de tip 3
(4 plăcinte), consumând în total 12
plăcinte în 9
unități de timp. Ar putea să mănânce 11
plăcinte sub forma 1 + 2 + 8
, dar ar dura 10
unități de timp.
…sau:
Intrare
2 5 1 3
Ieșire
5
…sau:
Intrare
5 1000000000 32145 1421431 13124 315125 124124
Ieșire
3281000000000