fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int f(vector<int>&v,vector<int>&ds,int idx, int sum, int k, int& cnt){
  4. if(idx>=v.size() || sum==k){
  5. if(sum==k){
  6. cnt++;
  7. return 1;
  8. // for(int i=0;i<ds.size();i++)
  9. // cout<<ds[i]<<" ";
  10. // cout<<endl;
  11. // return;
  12. }
  13. return 0;
  14. }
  15. sum=sum+v[idx]; ds.push_back(v[idx]);
  16. int l = f(v,ds,idx+1,sum,k,cnt);
  17. sum=sum-v[idx]; ds.pop_back();
  18. int r = f(v,ds,idx+1,sum,k,cnt);
  19. return l+r;
  20. }
  21. int main() {
  22. vector<int>v= {3,1,2,1};
  23. vector<int>ds; int sum=0; int idx=0; int k=4; int cnt=0;
  24. // f(v,ds,idx,sum,k,cnt);
  25. cout<<" count is "<<f(v,ds,idx,sum,k,cnt)<<endl;
  26. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
 count is 3