fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int d[] = {1, 24, 2, 2, 8, 44, 3, 42, 4, 8, 9, 2, 2, 7, 9, 4, 3, 5, 2, 4, 9, 5, 3, 2, 3, 2, 1, 1}
  5. , m = 209, *pd = d+1;
  6. // int d[] = {1, 8, 4, 3, 2, 4, 8, 9, 2, 2, 7, 9, 4, 3, 5, 2, 4, 9, 5, 3, 2, 3, 2, 1, 1}
  7. // , m = 99;
  8. //int d[] = {1, 4, -2, 2}
  9. // , m = 5;
  10. const int n = sizeof(d)/sizeof(int);
  11. char r[n], *pr = r;
  12.  
  13.  
  14. void find(int i, int s)
  15. {
  16. if (i == (n-1)) {
  17. if (s == m) {*(pr+i) = 0; cout<<" "<<pr<<" = "<<s<<endl;}
  18. return;
  19. }
  20. *(pr+i) = '+'; find(i+1, s+*(pd+i));
  21. *(pr+i) = '-'; find(i+1, s-*(pd+i));
  22. }
  23.  
  24. int main()
  25. {
  26. for(int i=0; i<n; i++) cout<<d[i]; cout<<endl;
  27. find(0, *d);
  28. return 0;
  29. }
Success #stdin #stdout 1.57s 3344KB
stdin
Standard input is empty
stdout
1242284434248922794352495323211
 ++++++++++++++++++++++++++- = 209
 +++++++++++++++++++++++++-+ = 209