3235
Din[0] = 1 //e clarfor(i=1;i<=n;i++) if(Din[V[i]]==0) { sol[++nrSol]=V[i]; //bagi in solutie daca nu se poate forma suma V[i] for(j=0;j<=V[n];j++) //cauti crescator sumele pe care le poti forma cu V[i] //pentru ca poti folosi o moneda de mai multe ori if(Din[j] && j+V[i]<=V[n]) //pana nu depasesti valoarea maxima a monedelor Din[j+V[i]]=1; //le marchezi }