fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 1e2 + 1;
  4. int n, target, a[N], sum ;
  5. vector<int>ans ;
  6. void solve(int idx)
  7. {
  8. if(sum > target)
  9. return ;
  10. if(idx == n + 1)
  11. {
  12. if(sum == target)
  13. {
  14. for(auto & x : ans)
  15. cout<<x<<' ' ;
  16. cout<<'\n' ;
  17. }
  18. return ;
  19. }
  20. /// pick
  21. sum += a[idx] ;
  22. ans.push_back(a[idx]) ;
  23. solve(idx + 1) ;
  24. sum -= a[idx] ;
  25. ans.pop_back() ;
  26. /// leave
  27. solve(idx + 1) ;
  28. }
  29. int main() {
  30. cin>>n>>target ;
  31. for(int i = 1 ; i <= n ; i++)
  32. cin>>a[i] ;
  33. solve(1) ;
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 5288KB
stdin
4 31
11 13 24 7
stdout
11 13 7 
24 7