Subset problem rec

question code
https://hack.codingblocks.com/contests/c/512/76
help me printing array containing least no.of elements first.
#include
using namespace std;
bool sum(int b[],int j,int k){
int ans =0;
for (int i=0;i<j;i++){
ans += b[i];
}
if(ans ==k){
return true;
}
else{
return false;
}
}

void subsequence(int a[],int b[],int i,int j,int n,int k){
if(i==n){
if(sum(b,j,k)){
for (int m=j-1;m>=0;m–){
cout<<b[m]<<" ";
}
cout<<endl;
}
return;
}
b[j]=a[i];
// if(res==0){
subsequence(a,b,i+1,j+1,n,k);
subsequence(a,b,i+1,j,n,k);

}

int main() {
int a[100];
int b[100]={0};
int n;
cin>>n;

for (int i=0;i<n;i++){
    cin>>a[i];
}
int k;
cin>>k;

subsequence(a,b,0,0,n,k);

return 0;

}

Hey Sarthak, share the ide link of your code.

https://ide.codingblocks.com/s/59684

Hey Sarthak, problem is your order of output is not correct so you can a 2D array and store all the results in it and print it after calling subsequence() in main().

1 Like