fork download
  1. // Jarod42
  2.  
  3. #include <algorithm>
  4. #include <cassert>
  5. #include <iostream>
  6. #include <iterator>
  7. #include <vector>
  8.  
  9. template <typename T>
  10. void Permutation(std::vector<T> v)
  11. {
  12. std::sort(v.begin(), v.end());
  13. do {
  14. std::copy(v.begin(), v.end(), std::ostream_iterator<T>(std::cout, " "));
  15. std::cout << std::endl;
  16. } while (std::next_permutation(v.begin(), v.end()));
  17. }
  18.  
  19. template <typename T>
  20. void Combination(const std::vector<T>& v, std::size_t count)
  21. {
  22. assert(count <= v.size());
  23. std::vector<bool> bitset(v.size() - count, 0);
  24. bitset.resize(v.size(), 1);
  25.  
  26. do {
  27. for (std::size_t i = 0; i != v.size(); ++i) {
  28. if (bitset[i]) {
  29. std::cout << v[i] << " ";
  30. }
  31. }
  32. std::cout << std::endl;
  33. } while (std::next_permutation(bitset.begin(), bitset.end()));
  34. }
  35.  
  36. bool increase(std::vector<bool>& bs)
  37. {
  38. for (std::size_t i = 0; i != bs.size(); ++i) {
  39. bs[i] = !bs[i];
  40. if (bs[i] == true) {
  41. return true;
  42. }
  43. }
  44. return false; // overflow
  45. }
  46.  
  47. template <typename T>
  48. void PowerSet(const std::vector<T>& v)
  49. {
  50. std::vector<bool> bitset(v.size());
  51.  
  52. do {
  53. for (std::size_t i = 0; i != v.size(); ++i) {
  54. if (bitset[i]) {
  55. std::cout << v[i] << " ";
  56. }
  57. }
  58. std::cout << std::endl;
  59. } while (increase(bitset));
  60. }
  61.  
  62. int main()
  63. {
  64. std::vector<char> vc{ 'A', 'B', 'C', 'D', 'E', 'F' };
  65. std::vector<char> path;
  66. std::vector<bool> visited(4, false);
  67. std::cout << "\n------PERMUTATION----------\n";
  68. Permutation(vc);
  69. std::cout << "\n------COMBINATION----------\n";
  70. Combination(vc, 2);
  71. std::cout << "\n------POWERSET-------------\n";
  72. PowerSet(vc);
  73. return 0;
  74. }
  75.  
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
------PERMUTATION----------
A B C D E F 
A B C D F E 
A B C E D F 
A B C E F D 
A B C F D E 
A B C F E D 
A B D C E F 
A B D C F E 
A B D E C F 
A B D E F C 
A B D F C E 
A B D F E C 
A B E C D F 
A B E C F D 
A B E D C F 
A B E D F C 
A B E F C D 
A B E F D C 
A B F C D E 
A B F C E D 
A B F D C E 
A B F D E C 
A B F E C D 
A B F E D C 
A C B D E F 
A C B D F E 
A C B E D F 
A C B E F D 
A C B F D E 
A C B F E D 
A C D B E F 
A C D B F E 
A C D E B F 
A C D E F B 
A C D F B E 
A C D F E B 
A C E B D F 
A C E B F D 
A C E D B F 
A C E D F B 
A C E F B D 
A C E F D B 
A C F B D E 
A C F B E D 
A C F D B E 
A C F D E B 
A C F E B D 
A C F E D B 
A D B C E F 
A D B C F E 
A D B E C F 
A D B E F C 
A D B F C E 
A D B F E C 
A D C B E F 
A D C B F E 
A D C E B F 
A D C E F B 
A D C F B E 
A D C F E B 
A D E B C F 
A D E B F C 
A D E C B F 
A D E C F B 
A D E F B C 
A D E F C B 
A D F B C E 
A D F B E C 
A D F C B E 
A D F C E B 
A D F E B C 
A D F E C B 
A E B C D F 
A E B C F D 
A E B D C F 
A E B D F C 
A E B F C D 
A E B F D C 
A E C B D F 
A E C B F D 
A E C D B F 
A E C D F B 
A E C F B D 
A E C F D B 
A E D B C F 
A E D B F C 
A E D C B F 
A E D C F B 
A E D F B C 
A E D F C B 
A E F B C D 
A E F B D C 
A E F C B D 
A E F C D B 
A E F D B C 
A E F D C B 
A F B C D E 
A F B C E D 
A F B D C E 
A F B D E C 
A F B E C D 
A F B E D C 
A F C B D E 
A F C B E D 
A F C D B E 
A F C D E B 
A F C E B D 
A F C E D B 
A F D B C E 
A F D B E C 
A F D C B E 
A F D C E B 
A F D E B C 
A F D E C B 
A F E B C D 
A F E B D C 
A F E C B D 
A F E C D B 
A F E D B C 
A F E D C B 
B A C D E F 
B A C D F E 
B A C E D F 
B A C E F D 
B A C F D E 
B A C F E D 
B A D C E F 
B A D C F E 
B A D E C F 
B A D E F C 
B A D F C E 
B A D F E C 
B A E C D F 
B A E C F D 
B A E D C F 
B A E D F C 
B A E F C D 
B A E F D C 
B A F C D E 
B A F C E D 
B A F D C E 
B A F D E C 
B A F E C D 
B A F E D C 
B C A D E F 
B C A D F E 
B C A E D F 
B C A E F D 
B C A F D E 
B C A F E D 
B C D A E F 
B C D A F E 
B C D E A F 
B C D E F A 
B C D F A E 
B C D F E A 
B C E A D F 
B C E A F D 
B C E D A F 
B C E D F A 
B C E F A D 
B C E F D A 
B C F A D E 
B C F A E D 
B C F D A E 
B C F D E A 
B C F E A D 
B C F E D A 
B D A C E F 
B D A C F E 
B D A E C F 
B D A E F C 
B D A F C E 
B D A F E C 
B D C A E F 
B D C A F E 
B D C E A F 
B D C E F A 
B D C F A E 
B D C F E A 
B D E A C F 
B D E A F C 
B D E C A F 
B D E C F A 
B D E F A C 
B D E F C A 
B D F A C E 
B D F A E C 
B D F C A E 
B D F C E A 
B D F E A C 
B D F E C A 
B E A C D F 
B E A C F D 
B E A D C F 
B E A D F C 
B E A F C D 
B E A F D C 
B E C A D F 
B E C A F D 
B E C D A F 
B E C D F A 
B E C F A D 
B E C F D A 
B E D A C F 
B E D A F C 
B E D C A F 
B E D C F A 
B E D F A C 
B E D F C A 
B E F A C D 
B E F A D C 
B E F C A D 
B E F C D A 
B E F D A C 
B E F D C A 
B F A C D E 
B F A C E D 
B F A D C E 
B F A D E C 
B F A E C D 
B F A E D C 
B F C A D E 
B F C A E D 
B F C D A E 
B F C D E A 
B F C E A D 
B F C E D A 
B F D A C E 
B F D A E C 
B F D C A E 
B F D C E A 
B F D E A C 
B F D E C A 
B F E A C D 
B F E A D C 
B F E C A D 
B F E C D A 
B F E D A C 
B F E D C A 
C A B D E F 
C A B D F E 
C A B E D F 
C A B E F D 
C A B F D E 
C A B F E D 
C A D B E F 
C A D B F E 
C A D E B F 
C A D E F B 
C A D F B E 
C A D F E B 
C A E B D F 
C A E B F D 
C A E D B F 
C A E D F B 
C A E F B D 
C A E F D B 
C A F B D E 
C A F B E D 
C A F D B E 
C A F D E B 
C A F E B D 
C A F E D B 
C B A D E F 
C B A D F E 
C B A E D F 
C B A E F D 
C B A F D E 
C B A F E D 
C B D A E F 
C B D A F E 
C B D E A F 
C B D E F A 
C B D F A E 
C B D F E A 
C B E A D F 
C B E A F D 
C B E D A F 
C B E D F A 
C B E F A D 
C B E F D A 
C B F A D E 
C B F A E D 
C B F D A E 
C B F D E A 
C B F E A D 
C B F E D A 
C D A B E F 
C D A B F E 
C D A E B F 
C D A E F B 
C D A F B E 
C D A F E B 
C D B A E F 
C D B A F E 
C D B E A F 
C D B E F A 
C D B F A E 
C D B F E A 
C D E A B F 
C D E A F B 
C D E B A F 
C D E B F A 
C D E F A B 
C D E F B A 
C D F A B E 
C D F A E B 
C D F B A E 
C D F B E A 
C D F E A B 
C D F E B A 
C E A B D F 
C E A B F D 
C E A D B F 
C E A D F B 
C E A F B D 
C E A F D B 
C E B A D F 
C E B A F D 
C E B D A F 
C E B D F A 
C E B F A D 
C E B F D A 
C E D A B F 
C E D A F B 
C E D B A F 
C E D B F A 
C E D F A B 
C E D F B A 
C E F A B D 
C E F A D B 
C E F B A D 
C E F B D A 
C E F D A B 
C E F D B A 
C F A B D E 
C F A B E D 
C F A D B E 
C F A D E B 
C F A E B D 
C F A E D B 
C F B A D E 
C F B A E D 
C F B D A E 
C F B D E A 
C F B E A D 
C F B E D A 
C F D A B E 
C F D A E B 
C F D B A E 
C F D B E A 
C F D E A B 
C F D E B A 
C F E A B D 
C F E A D B 
C F E B A D 
C F E B D A 
C F E D A B 
C F E D B A 
D A B C E F 
D A B C F E 
D A B E C F 
D A B E F C 
D A B F C E 
D A B F E C 
D A C B E F 
D A C B F E 
D A C E B F 
D A C E F B 
D A C F B E 
D A C F E B 
D A E B C F 
D A E B F C 
D A E C B F 
D A E C F B 
D A E F B C 
D A E F C B 
D A F B C E 
D A F B E C 
D A F C B E 
D A F C E B 
D A F E B C 
D A F E C B 
D B A C E F 
D B A C F E 
D B A E C F 
D B A E F C 
D B A F C E 
D B A F E C 
D B C A E F 
D B C A F E 
D B C E A F 
D B C E F A 
D B C F A E 
D B C F E A 
D B E A C F 
D B E A F C 
D B E C A F 
D B E C F A 
D B E F A C 
D B E F C A 
D B F A C E 
D B F A E C 
D B F C A E 
D B F C E A 
D B F E A C 
D B F E C A 
D C A B E F 
D C A B F E 
D C A E B F 
D C A E F B 
D C A F B E 
D C A F E B 
D C B A E F 
D C B A F E 
D C B E A F 
D C B E F A 
D C B F A E 
D C B F E A 
D C E A B F 
D C E A F B 
D C E B A F 
D C E B F A 
D C E F A B 
D C E F B A 
D C F A B E 
D C F A E B 
D C F B A E 
D C F B E A 
D C F E A B 
D C F E B A 
D E A B C F 
D E A B F C 
D E A C B F 
D E A C F B 
D E A F B C 
D E A F C B 
D E B A C F 
D E B A F C 
D E B C A F 
D E B C F A 
D E B F A C 
D E B F C A 
D E C A B F 
D E C A F B 
D E C B A F 
D E C B F A 
D E C F A B 
D E C F B A 
D E F A B C 
D E F A C B 
D E F B A C 
D E F B C A 
D E F C A B 
D E F C B A 
D F A B C E 
D F A B E C 
D F A C B E 
D F A C E B 
D F A E B C 
D F A E C B 
D F B A C E 
D F B A E C 
D F B C A E 
D F B C E A 
D F B E A C 
D F B E C A 
D F C A B E 
D F C A E B 
D F C B A E 
D F C B E A 
D F C E A B 
D F C E B A 
D F E A B C 
D F E A C B 
D F E B A C 
D F E B C A 
D F E C A B 
D F E C B A 
E A B C D F 
E A B C F D 
E A B D C F 
E A B D F C 
E A B F C D 
E A B F D C 
E A C B D F 
E A C B F D 
E A C D B F 
E A C D F B 
E A C F B D 
E A C F D B 
E A D B C F 
E A D B F C 
E A D C B F 
E A D C F B 
E A D F B C 
E A D F C B 
E A F B C D 
E A F B D C 
E A F C B D 
E A F C D B 
E A F D B C 
E A F D C B 
E B A C D F 
E B A C F D 
E B A D C F 
E B A D F C 
E B A F C D 
E B A F D C 
E B C A D F 
E B C A F D 
E B C D A F 
E B C D F A 
E B C F A D 
E B C F D A 
E B D A C F 
E B D A F C 
E B D C A F 
E B D C F A 
E B D F A C 
E B D F C A 
E B F A C D 
E B F A D C 
E B F C A D 
E B F C D A 
E B F D A C 
E B F D C A 
E C A B D F 
E C A B F D 
E C A D B F 
E C A D F B 
E C A F B D 
E C A F D B 
E C B A D F 
E C B A F D 
E C B D A F 
E C B D F A 
E C B F A D 
E C B F D A 
E C D A B F 
E C D A F B 
E C D B A F 
E C D B F A 
E C D F A B 
E C D F B A 
E C F A B D 
E C F A D B 
E C F B A D 
E C F B D A 
E C F D A B 
E C F D B A 
E D A B C F 
E D A B F C 
E D A C B F 
E D A C F B 
E D A F B C 
E D A F C B 
E D B A C F 
E D B A F C 
E D B C A F 
E D B C F A 
E D B F A C 
E D B F C A 
E D C A B F 
E D C A F B 
E D C B A F 
E D C B F A 
E D C F A B 
E D C F B A 
E D F A B C 
E D F A C B 
E D F B A C 
E D F B C A 
E D F C A B 
E D F C B A 
E F A B C D 
E F A B D C 
E F A C B D 
E F A C D B 
E F A D B C 
E F A D C B 
E F B A C D 
E F B A D C 
E F B C A D 
E F B C D A 
E F B D A C 
E F B D C A 
E F C A B D 
E F C A D B 
E F C B A D 
E F C B D A 
E F C D A B 
E F C D B A 
E F D A B C 
E F D A C B 
E F D B A C 
E F D B C A 
E F D C A B 
E F D C B A 
F A B C D E 
F A B C E D 
F A B D C E 
F A B D E C 
F A B E C D 
F A B E D C 
F A C B D E 
F A C B E D 
F A C D B E 
F A C D E B 
F A C E B D 
F A C E D B 
F A D B C E 
F A D B E C 
F A D C B E 
F A D C E B 
F A D E B C 
F A D E C B 
F A E B C D 
F A E B D C 
F A E C B D 
F A E C D B 
F A E D B C 
F A E D C B 
F B A C D E 
F B A C E D 
F B A D C E 
F B A D E C 
F B A E C D 
F B A E D C 
F B C A D E 
F B C A E D 
F B C D A E 
F B C D E A 
F B C E A D 
F B C E D A 
F B D A C E 
F B D A E C 
F B D C A E 
F B D C E A 
F B D E A C 
F B D E C A 
F B E A C D 
F B E A D C 
F B E C A D 
F B E C D A 
F B E D A C 
F B E D C A 
F C A B D E 
F C A B E D 
F C A D B E 
F C A D E B 
F C A E B D 
F C A E D B 
F C B A D E 
F C B A E D 
F C B D A E 
F C B D E A 
F C B E A D 
F C B E D A 
F C D A B E 
F C D A E B 
F C D B A E 
F C D B E A 
F C D E A B 
F C D E B A 
F C E A B D 
F C E A D B 
F C E B A D 
F C E B D A 
F C E D A B 
F C E D B A 
F D A B C E 
F D A B E C 
F D A C B E 
F D A C E B 
F D A E B C 
F D A E C B 
F D B A C E 
F D B A E C 
F D B C A E 
F D B C E A 
F D B E A C 
F D B E C A 
F D C A B E 
F D C A E B 
F D C B A E 
F D C B E A 
F D C E A B 
F D C E B A 
F D E A B C 
F D E A C B 
F D E B A C 
F D E B C A 
F D E C A B 
F D E C B A 
F E A B C D 
F E A B D C 
F E A C B D 
F E A C D B 
F E A D B C 
F E A D C B 
F E B A C D 
F E B A D C 
F E B C A D 
F E B C D A 
F E B D A C 
F E B D C A 
F E C A B D 
F E C A D B 
F E C B A D 
F E C B D A 
F E C D A B 
F E C D B A 
F E D A B C 
F E D A C B 
F E D B A C 
F E D B C A 
F E D C A B 
F E D C B A 

------COMBINATION----------
E F 
D F 
D E 
C F 
C E 
C D 
B F 
B E 
B D 
B C 
A F 
A E 
A D 
A C 
A B 

------POWERSET-------------

A 
B 
A B 
C 
A C 
B C 
A B C 
D 
A D 
B D 
A B D 
C D 
A C D 
B C D 
A B C D 
E 
A E 
B E 
A B E 
C E 
A C E 
B C E 
A B C E 
D E 
A D E 
B D E 
A B D E 
C D E 
A C D E 
B C D E 
A B C D E 
F 
A F 
B F 
A B F 
C F 
A C F 
B C F 
A B C F 
D F 
A D F 
B D F 
A B D F 
C D F 
A C D F 
B C D F 
A B C D F 
E F 
A E F 
B E F 
A B E F 
C E F 
A C E F 
B C E F 
A B C E F 
D E F 
A D E F 
B D E F 
A B D E F 
C D E F 
A C D E F 
B C D E F 
A B C D E F