http://en.wikipedia.org/wiki/Subset_sum_problem.
Problema e NP-Complete pe cazul general, se presupune că nu există soluție în timp polinomial relativ la input. Deci fie ai N mic și faci ceva exponențial în N -după cum ți-a sugerat Valeriu mai sus- fie ai valorile mici și o rezolvi cu programare dinamică.
Hint pentru programare dinamică: Gândește-te cum poți actualiza sumele obținute dintr-o anumită mulțime atunci când o extinzi cu un nou element.
Dacă ai soluții care merg atât pentru N mare cât și pentru valori mari, probabil ceva nu e în regulă.