#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int w[10],x[10],m,r=0;
int sos(int,int,int);
void main()
{
int n;
cout<<"\nEnter the no of weights:";
cin>>n;
cout<<"\nEnter "<<n<<" values:\n";
for(int i=1;i<=n;i++)
cin>>w[i];
cout<<"\nEnter the capacity values:";
cin>>m;
for(i=1;i<=n;i++)
r=r+w[i];
sos(0,1,r);
getch();
}
int sos(int s,int k,int r)
{
x[k]=1;
if(s+w[k]==m)
{
for(int i=1;i<=k;i++)
cout<<x[i];
getch();
exit(0);
return (x[k]);
}
else if(s+w[k]+w[k+1]<=m)
{
sos(s+w[k],k+1,r-w[k]);
}
if((s+r-w[k]>m) || (s+w[k+1]<=m))
{
x[k]=0;
sos(s,k+1,r-w[k]);
}
return(0);
}
Comments
Post a Comment