#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
using genom = vector<int>;
using splited = pair<genom,genom>;
splited split(const genom &src)
{
static struct once { public: once() { srand(time(0)); } } _once;
size_t size=src.size();
if(size<2) exit(1); // a co robimy?
size_t mid=size>2?1+(rand()%(size-1)):1;
return make_pair(vector<int>(begin(src)+0,begin(src)+mid),vector<int>(begin(src)+mid,begin(src)+size));
}
int main()
{
genom src { 1,2,3,4,5,6,7 };
for(int i=0;i<10;++i)
{
splited sp=split(src);
ostream_iterator<int> sout(cout," ");
copy_n(begin(sp.first),sp.first.size(),sout);
cout<<"/ ";
copy_n(begin(sp.second),sp.second.size(),sout);
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBnZW5vbSA9IHZlY3RvcjxpbnQ+Owp1c2luZyBzcGxpdGVkID0gcGFpcjxnZW5vbSxnZW5vbT47CgpzcGxpdGVkIHNwbGl0KGNvbnN0IGdlbm9tICZzcmMpCnsKICAgIHN0YXRpYyBzdHJ1Y3Qgb25jZSB7IHB1YmxpYzogb25jZSgpIHsgc3JhbmQodGltZSgwKSk7IH0gfSBfb25jZTsKICAgIHNpemVfdCBzaXplPXNyYy5zaXplKCk7CiAgICBpZihzaXplPDIpIGV4aXQoMSk7IC8vIGEgY28gcm9iaW15PwogICAgc2l6ZV90IG1pZD1zaXplPjI/MSsocmFuZCgpJShzaXplLTEpKToxOwogICAgcmV0dXJuIG1ha2VfcGFpcih2ZWN0b3I8aW50PihiZWdpbihzcmMpKzAsYmVnaW4oc3JjKSttaWQpLHZlY3RvcjxpbnQ+KGJlZ2luKHNyYykrbWlkLGJlZ2luKHNyYykrc2l6ZSkpOwp9CgppbnQgbWFpbigpCnsKCWdlbm9tIHNyYyB7IDEsMiwzLDQsNSw2LDcgfTsKCWZvcihpbnQgaT0wO2k8MTA7KytpKQoJewoJCXNwbGl0ZWQgc3A9c3BsaXQoc3JjKTsKCQlvc3RyZWFtX2l0ZXJhdG9yPGludD4gc291dChjb3V0LCIgIik7CgkJY29weV9uKGJlZ2luKHNwLmZpcnN0KSxzcC5maXJzdC5zaXplKCksc291dCk7CgkJY291dDw8Ii8gIjsKCQljb3B5X24oYmVnaW4oc3Auc2Vjb25kKSxzcC5zZWNvbmQuc2l6ZSgpLHNvdXQpOwoJCWNvdXQ8PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==