fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. using genom = vector<int>;
  8. using splited = pair<genom,genom>;
  9.  
  10. splited split(const genom &src)
  11. {
  12. static struct once { public: once() { srand(time(0)); } } _once;
  13. size_t size=src.size();
  14. if(size<2) exit(1); // a co robimy?
  15. size_t mid=size>2?1+(rand()%(size-1)):1;
  16. return make_pair(vector<int>(begin(src)+0,begin(src)+mid),vector<int>(begin(src)+mid,begin(src)+size));
  17. }
  18.  
  19. int main()
  20. {
  21. genom src { 1,2,3,4,5,6,7 };
  22. for(int i=0;i<10;++i)
  23. {
  24. splited sp=split(src);
  25. ostream_iterator<int> sout(cout," ");
  26. copy_n(begin(sp.first),sp.first.size(),sout);
  27. cout<<"/ ";
  28. copy_n(begin(sp.second),sp.second.size(),sout);
  29. cout<<endl;
  30. }
  31. return 0;
  32. }
Success #stdin #stdout 0s 4648KB
stdin
Standard input is empty
stdout
1 2 3 4 5 / 6 7 
1 2 3 / 4 5 6 7 
1 2 / 3 4 5 6 7 
1 / 2 3 4 5 6 7 
1 2 3 4 5 / 6 7 
1 2 3 / 4 5 6 7 
1 2 3 4 / 5 6 7 
1 2 3 / 4 5 6 7 
1 2 3 / 4 5 6 7 
1 2 3 4 / 5 6 7