fork(9) download
  1. #include <algorithm>
  2. #include <cassert>
  3. #include <iostream>
  4. #include <vector>
  5.  
  6. template <typename T>
  7. void Combination(const std::vector<T>& v, std::size_t count)
  8. {
  9. assert(count <= v.size());
  10. std::vector<bool> bitset(v.size() - count, 0);
  11. bitset.resize(v.size(), 1);
  12.  
  13. do {
  14. for (std::size_t i = 0; i != v.size(); ++i) {
  15. if (bitset[i]) {
  16. std::cout << v[i] << " ";
  17. }
  18. }
  19. std::cout << std::endl;
  20. } while (std::next_permutation(bitset.begin(), bitset.end()));
  21. }
  22.  
  23. int main() {
  24. const std::vector<int> v = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  25.  
  26. Combination(v, 3);
  27. }
  28.  
Success #stdin #stdout 0s 4168KB
stdin
Standard input is empty
stdout
7 8 9 
6 8 9 
6 7 9 
6 7 8 
5 8 9 
5 7 9 
5 7 8 
5 6 9 
5 6 8 
5 6 7 
4 8 9 
4 7 9 
4 7 8 
4 6 9 
4 6 8 
4 6 7 
4 5 9 
4 5 8 
4 5 7 
4 5 6 
3 8 9 
3 7 9 
3 7 8 
3 6 9 
3 6 8 
3 6 7 
3 5 9 
3 5 8 
3 5 7 
3 5 6 
3 4 9 
3 4 8 
3 4 7 
3 4 6 
3 4 5 
2 8 9 
2 7 9 
2 7 8 
2 6 9 
2 6 8 
2 6 7 
2 5 9 
2 5 8 
2 5 7 
2 5 6 
2 4 9 
2 4 8 
2 4 7 
2 4 6 
2 4 5 
2 3 9 
2 3 8 
2 3 7 
2 3 6 
2 3 5 
2 3 4 
1 8 9 
1 7 9 
1 7 8 
1 6 9 
1 6 8 
1 6 7 
1 5 9 
1 5 8 
1 5 7 
1 5 6 
1 4 9 
1 4 8 
1 4 7 
1 4 6 
1 4 5 
1 3 9 
1 3 8 
1 3 7 
1 3 6 
1 3 5 
1 3 4 
1 2 9 
1 2 8 
1 2 7 
1 2 6 
1 2 5 
1 2 4 
1 2 3 
0 8 9 
0 7 9 
0 7 8 
0 6 9 
0 6 8 
0 6 7 
0 5 9 
0 5 8 
0 5 7 
0 5 6 
0 4 9 
0 4 8 
0 4 7 
0 4 6 
0 4 5 
0 3 9 
0 3 8 
0 3 7 
0 3 6 
0 3 5 
0 3 4 
0 2 9 
0 2 8 
0 2 7 
0 2 6 
0 2 5 
0 2 4 
0 2 3 
0 1 9 
0 1 8 
0 1 7 
0 1 6 
0 1 5 
0 1 4 
0 1 3 
0 1 2