fork(3) download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. bool solve(vector<int> nums) {
  6. if(nums.size() == 0)
  7. return false;
  8.  
  9. int sum = 0;
  10. for(int i = 0; i < nums.size(); ++i)
  11. sum += nums[i];
  12.  
  13. if(sum == 0) {
  14. for(int i = 0; i < nums.size(); ++i)
  15. cout << nums[i] << " ";
  16. cout << endl;
  17. return true;
  18. }
  19.  
  20. int last = nums.back();
  21. nums.pop_back();
  22.  
  23. for(int i = nums.size() - 1; i >= 0; --i) {
  24. bool b = solve(nums);
  25. if(b)
  26. return true;
  27.  
  28. int temp = nums[i];
  29. nums[i] = last;
  30. last = temp;
  31. }
  32.  
  33. return false;
  34. }
  35.  
  36. int main() {
  37. vector<int> nums = {-2, -3, 15, 14, 7, -10};
  38. if(!solve(nums))
  39. cout << "No solutions." << endl;
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
-2 -3 15 -10