fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define size 4
  4.  
  5. int arr[size] = {1,2,3,4};
  6. vector< vector<int> > all;
  7.  
  8. void generate_powerset(int *temparr, int level, int start)
  9. {
  10. int i, j;
  11. vector<int> sub ;
  12. for(i=start; i<size; i++)
  13. {
  14. temparr[level] = arr[i];
  15. sub.clear();
  16. // printf("{ ");
  17. for (j=0; j<=level; j++)
  18. sub.push_back(temparr[j]); //printf("%d ",temparr[j]);
  19. all.push_back(sub);
  20. // printf("}\n");
  21. if( i < size-1)
  22. generate_powerset(temparr, level+1, i+1);
  23. }
  24. }
  25.  
  26. int main()
  27. {
  28. printf("{ }\n"); // Empty Set!
  29. int temparr[size] = {0};
  30. generate_powerset(temparr, 0, 0);
  31. for (auto i: all)
  32. {
  33. for(auto j : i)
  34. cout << j << " ";
  35. cout << endl;
  36. }
  37.  
  38. }
  39.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
{ }
1 
1 2 
1 2 3 
1 2 3 4 
1 2 4 
1 3 
1 3 4 
1 4 
2 
2 3 
2 3 4 
2 4 
3 
3 4 
4