Sari la conținut
Zece la Info
Probleme

Numarul de moduri de a plati o suma cu monede date

Grea 1500 ms 64 MB#recursivitate#combinatorica

Se citesc un numar natural S (suma de platit), un numar natural m si apoi m valori reprezentand tipurile de monede disponibile (fiecare tip de moneda poate fi folosit de oricate ori). Scrieti un program care calculeaza recursiv, folosind un subprogram cu doi parametri (suma ramasa si indexul tipului de moneda curent), in cate moduri distincte (fara a tine cont de ordinea monedelor) se poate obtine suma S folosind monedele date.

Date de intrare
Pe prima linie S si m, pe a doua linie cele m valori ale monedelor, separate prin spatiu.
Date de iesire
Numarul de moduri distincte de a obtine suma S.
Restrictii
0 <= S <= 30, 1 <= m <= 5, 1 <= valoare_moneda <= 30

Exemple

Exemplul 1

Intrare

0 2
1 2

Iesire

1

Exemplul 2

Intrare

5 2
1 2

Iesire

3

Vrei să rezolvi problema?

Creează-ți un cont gratuit ca să scrii cod în editor, să trimiți soluții la evaluator și să vezi indicațiile.