Fişierul intrare/ieşire:sir11.in, sir11.outSursăad-hoc
AutorDin FolclorAdăugată devmanzVictor Manz vmanz
Timp execuţie pe test0.1 secLimită de memorie512 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Sir11

Se dau n şi s, două numere naturale nenule şi un multiset A = {a(1), a(2),..., a(n)} de n numere naturale nenule, nu neapărat distincte. Scrieţi un program care generează şi afişează toate şirurile crescătoare formate cu elemente ale lui A a caror suma este mai mica sau egala cu s. Şirurile vor fi afişate în ordine crescătoare din punct de vedere lexicografic.

În general, spunem că şirul (x(1), x(2), ..., x(m)) este mai mic decât şirul (y(1), y(2), ..., y(n)) din punct de vedere lexicografic dacă:

  • există k, 1 ≤ k ≤ min(m, n), astfel încât x(1) = y(1), x(2) = y(2), ..., x(k-1) = y(k-1) şi x(k) < y(k)

sau

  • m < n şi x(i) = y(i) pentru orice 1 ≤ i ≤ m (şirul x este un prefix al lui y).

Date de intrare

Fişierul de intrare sir11.in va conţine pe prima linie separate printr-un spaţiu numerele n şi s. Pe fiecare dintre următoarele n linii se va afla câte un element al multisetului A: pe linia i+1 se va afla a(i).

Date de ieşire

În fişierul de ieşire sir11.out vor fi scrise pe linii separate toate şirurile cerute. Elementele fiecărui şir vor fi separate prin câte un spaţiu.

Restricţii

  • 1 ≤ n ≤ 20
  • 1 ≤ s ≤ 30
  • 1 ≤ a(i) ≤ 100 pentru orice 1 ≤ i ≤ n

Exemplu

sir11.insir11.out
5 10
3
8
11
3
6
3
3 3
3 3 3
3 6
6
8

Explicaţie

Şirurile afişate au sumele 3, 6, 9, 9, 6 şi respectiv 8, sunt crescătoare şi sunt afişate în ordine lexicografică. Acestea sunt singurele şiruri care respectă condiţiile din enunţ.

Trebuie sa te autentifici pentru a trimite solutii. Click aici