Programare dinamica: ceva asemanator cu problema rucsacului.
d[ i ][ s ] = 1, daca se poate forma suma s cu o submultime a primelor i elemente;
Poti sa reduci memoria folosita la O(S), iar complexitatea va fi O(N*S) unde N este numarul de elemente si S suma tuturor elementelor.