skb461

Sum of Subset Problem

Jan 22nd, 2023
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | Source Code | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. #include<cstring>
  5. using namespace std;
  6.  
  7. void helper(vector<int> num,int x,int sum){
  8. int check_sum[1000];
  9. int j=0,k=0,final_sum=0;
  10. while(x>0){
  11. int last_bit=x&1;
  12. if(last_bit){
  13. check_sum[j]=num[k];
  14. j++;
  15. }
  16. k++;
  17. x=(x>>1);
  18. }
  19. for(int i=0;i<j;i++){
  20. final_sum=final_sum+check_sum[i];
  21. }
  22. if(final_sum==sum){
  23. for(int i=0;i<j;i++){
  24. cout<<check_sum[i]<<" ";
  25. }
  26. cout<<endl;
  27. }
  28. }
  29. void subset(vector<int> num,int sum,int n){
  30. for(int i=0;i<(1<<n);i++){
  31. helper(num,i,sum);
  32. }
  33. }
  34. int main(){
  35. vector<int> num;
  36. int n,c,sum;
  37. cout<<"number of integers"<<endl;
  38. cin>>n;
  39. cout<<"enter numbers"<<endl;
  40. for(int i=0;i<n;i++){
  41. cin>>c;
  42. num.push_back(c);
  43. }
  44. sort(num.begin(),num.end());
  45. cout<<"enter sum";
  46. cin>>sum;
  47. subset(num,sum,n);
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment