fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int cnt=0;
  4. bool f(vector<int>&v,vector<int>&ds,int idx, int sum, int k){
  5. if(idx>=(int)v.size() || sum==k){
  6. if(sum==k) {
  7. cnt++;
  8. cout<<" count is "<<cnt<<endl;
  9. for(int i=0;i<ds.size();i++)
  10. cout<<ds[i]<<" ";
  11. cout<<endl;
  12. return true;}
  13. return false;
  14. }
  15. sum=sum+v[idx];
  16. ds.push_back(v[idx]);
  17. bool ans = f(v,ds,idx+1,sum,k);
  18. if(ans==true)
  19. return ans;
  20. sum=sum-v[idx];
  21. ds.pop_back();
  22. ans = f(v,ds,idx+1,sum,k);
  23. return ans;
  24. }
  25. int main() {
  26. vector<int> v = {3, 1, 2};
  27. vector<int> ds;
  28. // vector<vector<int>> ans;
  29. int sum=0;
  30. cout<<f(v,ds,0,sum,3)<<endl;
  31.  
  32. // for (const auto& seq : ans) {
  33. // for (int num : seq)
  34. // cout << num << " ";
  35. // cout << endl;
  36. // }
  37. }
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
 count is 1
3 
1