fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. /*
  6. set = {1,2,3}
  7. print all the subsets of this set
  8. E.g.
  9. 1
  10. 2
  11. 3
  12. 1 2
  13. 1 3
  14. ...
  15. tem curr set
  16.  
  17. */
  18.  
  19.  
  20. void DFS(int sou , int n , vector<int>& curr , vector<int>& a){
  21. if(sou >= n)return;
  22. cout<< "call with: " <<sou << "\n";
  23. curr.push_back(a[sou]);
  24. for(int i = sou + 1 ; i < n ; i++){
  25. DFS(i , n , curr , a);
  26. }
  27. for(int i : curr){
  28. cout << i << " ";
  29. }
  30. cout << "\n";
  31. curr.pop_back();
  32. }
  33. // To execute C++, please define "int main()"
  34. int main() {
  35. vector<int> curr; // O(n)
  36. vector<int> a = {1 ,2 , 3};
  37. int n = a.size();
  38. //for(int i = 0 ; i < n ; i++)
  39. {
  40. //n*(n-1)*..1 ;// O(2^n);
  41. DFS(2 , n , curr , a);
  42. }
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
call with: 2
3