Tagy: dynamické programovanie
Obtiažnosť: medium

Rozmieňanie mincí

Vo vašej domácej mene existuje $n$ rôznych hodnôt mincí. Vašim cieľom je zaplatiť presne sumu $c$ tak, aby ste použili čo najmenej mincí.

Každý typ mince môžete použiť neobmedzene veľakrát.

Aký je najmenší počet mincí, ktorými viete zaplatiť presne sumu $c$?

Nápoveda: podproblém

Skúste odpovedať na otázku: koľko mincí potrebujem na rozmenenie sumy $i$?

Vstup

Na prvom riadku vstupu dostanete číslo $n$ a $c$. Na druhom riadku je $n$ rôznych medzerou oddelených čísiel -- hodnoty jednotlivých mincí.

Výstup

Na jeden riadok výstupu vypíšte najmenší počet mincí, ktoré môžete použiť na zaplatenie sumy $c$, alebo -1, ak sa to nedá.

Príklady

Vstup

6 45
5 10 20 50 100 200

Výstup

3

Vstup

3 8
1 4 5

Výstup

2
Ak chceš riešiť túto úlohu, musíš sa najprv prihlásiť.