Stuff
public text v1 · immutableprocedure sumasub(S, M):
C = ordenar_decreciente(S)
while C[1] > M:
remover(C, 1)
buscar(C, $\emptyset$, M)
procedure buscar(C[1..n], L, M):
if M = 0:
mostrar(L)
return
if $\sumc < M$:
return
while C[1] > M:
remover(C, 1)
while $C \neq \emptyset$:
nuevo $\asig$ C[1]
remover(C, 1)
buscar(C, L $\cup$ {nuevo}, M-nuevo)
return