fork download
  1. #include<iostream>
  2. #include<vector>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. bool sum1(int arr[],int sum,int k,int tsum,int m,int n,vector<int> &elements)
  8. {
  9.  
  10. if(sum+arr[k]==m)
  11. {
  12. elements.push_back(arr[k]);
  13. return true;
  14. }
  15. else if(k>n)
  16. {
  17. return false;
  18. }
  19. else if(sum+arr[k]+arr[k+1]<=m)
  20. {
  21. elements.push_back(arr[k]);
  22. return sum1(arr,sum+arr[k],k+1,tsum-arr[k],m,n-1,elements);
  23. }
  24. if((sum+tsum-arr[k]>=tsum) && (sum+arr[k+1]<=tsum))
  25. {
  26. elements.push_back(arr[k]);
  27. return sum1(arr,sum,k+1,tsum-arr[k],m,n,elements);
  28. }
  29.  
  30.  
  31. return false;
  32. }
  33. int main()
  34. {
  35. vector<int> elements;
  36. int arr[]={4,7,7,17};
  37. if(sum1(arr,0,0,35,18,4,elements))
  38. {
  39. cout<<1;
  40. for(vector<int>::const_iterator it=elements.begin();it!=elements.end();it++){
  41. cout<<endl<<"Value: "<<*it;
  42. }
  43. }
  44. else{
  45. cout<<0;
  46. }
  47. }
  48.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
1
Value: 4
Value: 7
Value: 7