fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. std::ostream& operator<<(std::ostream& os, const std::vector<int>& v)
  9. {
  10. os << "{ ";
  11. for (auto e : v)
  12. os << e << ' ' ;
  13. return os << '}' ;
  14. }
  15.  
  16. void divvySequence(const std::vector<int>& seq, std::vector<int>& left, std::vector<int>& right)
  17. {
  18. left.clear();
  19. right.clear();
  20.  
  21. for (auto term : seq)
  22. {
  23. if (rand() % 2)
  24. left.push_back(term);
  25. else
  26. right.push_back(term);
  27. }
  28. }
  29.  
  30. int main()
  31. {
  32. std::srand(std::time(0));
  33.  
  34. unsigned nElements;
  35. while ( std::cout << "Number of elements:\n" && std::cin >> nElements && nElements > 0 )
  36. {
  37. std::vector<int> sequence;
  38. for (unsigned i = 0; i < nElements; ++i)
  39. sequence.push_back(i);
  40.  
  41. std::vector<int> left, right;
  42.  
  43. divvySequence(sequence, left, right);
  44.  
  45. std::cout << "Original: " << sequence;
  46. std::cout << "\nLeft: " << left;
  47. std::cout << "\nRight: " << right << '\n';
  48. }
  49. }
Success #stdin #stdout 0s 3436KB
stdin
10
20
0
stdout
Number of elements:
Original: { 0 1 2 3 4 5 6 7 8 9 }
Left:     { 2 3 6 7 8 9 }
Right:    { 0 1 4 5 }
Number of elements:
Original: { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 }
Left:     { 0 1 3 4 5 12 13 15 17 18 }
Right:    { 2 6 7 8 9 10 11 14 16 19 }
Number of elements: