Sari la conținut
Zece la Info
Probleme

Toate modurile de a plati o suma cu monede date

Medie 1500 ms 64 MB#backtracking#combinari-cu-repetitie#combinatorica

Se citesc un numar natural m, cele m valori distincte ale unor monede disponibile in cantitate nelimitata, si o suma S. Generati, folosind metoda Backtracking, toate modurile de a obtine suma S folosind aceste monede (fiecare moneda putand fi folosita de oricate ori).

Date de intrare
Pe prima linie se citeste m. Pe a doua linie se citesc cele m valori ale monedelor. Pe a treia linie se citeste S.
Date de iesire
Se afiseaza toate modurile de a obtine suma S, cate unul pe linie, sub forma 'valoare1:cantitate1 valoare2:cantitate2 ... valoarem:cantitatem' (in ordinea monedelor citite), in ordinea generata de backtracking (numarul de monede de prima valoare crescand de la 0).
Restrictii
1 <= m <= 4, 1 <= valoare moneda <= 30, 0 <= S <= 30

Exemple

Exemplul 1

Intrare

2
1 2
4

Iesire

1:0 2:2
1:2 2:1
1:4 2:0

Exemplul 2

Intrare

3
1 2 5
5

Iesire

1:0 2:0 5:1
1:1 2:2 5:0
1:3 2:1 5:0
1:5 2:0 5:0

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.