#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
using namespace std;
std::ostream& operator<<(std::ostream& os, const std::vector<int>& v)
{
os << "{ ";
for (auto e : v)
os << e << ' ' ;
return os << '}' ;
}
void divvySequence(const std::vector<int>& seq, std::vector<int>& left, std::vector<int>& right)
{
left.clear();
right.clear();
for (auto term : seq)
{
if (rand() % 2)
left.push_back(term);
else
right.push_back(term);
}
}
int main()
{
std::srand(std::time(0));
unsigned nElements;
while ( std::cout << "Number of elements:\n" && std::cin >> nElements && nElements > 0 )
{
std::vector<int> sequence;
for (unsigned i = 0; i < nElements; ++i)
sequence.push_back(i);
std::vector<int> left, right;
divvySequence(sequence, left, right);
std::cout << "Original: " << sequence;
std::cout << "\nLeft: " << left;
std::cout << "\nRight: " << right << '\n';
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiB2KQp7CiAgICBvcyA8PCAieyAiOwogICAgZm9yIChhdXRvIGUgOiB2KQogICAgICAgIG9zIDw8IGUgPDwgJyAnIDsKICAgIHJldHVybiBvcyA8PCAnfScgOwp9Cgp2b2lkIGRpdnZ5U2VxdWVuY2UoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc2VxLCBzdGQ6OnZlY3RvcjxpbnQ+JiBsZWZ0LCBzdGQ6OnZlY3RvcjxpbnQ+JiByaWdodCkKewogICAgbGVmdC5jbGVhcigpOwogICAgcmlnaHQuY2xlYXIoKTsKCiAgICBmb3IgKGF1dG8gdGVybSA6IHNlcSkKICAgIHsKICAgICAgICBpZiAocmFuZCgpICUgMikKICAgICAgICAgICAgbGVmdC5wdXNoX2JhY2sodGVybSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICByaWdodC5wdXNoX2JhY2sodGVybSk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpzcmFuZChzdGQ6OnRpbWUoMCkpOwoKICAgIHVuc2lnbmVkIG5FbGVtZW50czsKICAgIHdoaWxlICggc3RkOjpjb3V0IDw8ICJOdW1iZXIgb2YgZWxlbWVudHM6XG4iICYmIHN0ZDo6Y2luID4+IG5FbGVtZW50cyAmJiBuRWxlbWVudHMgPiAwICkKICAgIHsKICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IHNlcXVlbmNlOwogICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuRWxlbWVudHM7ICsraSkKICAgICAgICAgICAgc2VxdWVuY2UucHVzaF9iYWNrKGkpOwoKICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGxlZnQsIHJpZ2h0OwoKICAgICAgICBkaXZ2eVNlcXVlbmNlKHNlcXVlbmNlLCBsZWZ0LCByaWdodCk7CgogICAgICAgIHN0ZDo6Y291dCA8PCAiT3JpZ2luYWw6ICIgPDwgc2VxdWVuY2U7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJcbkxlZnQ6ICAgICAiIDw8IGxlZnQ7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJcblJpZ2h0OiAgICAiIDw8IHJpZ2h0IDw8ICdcbic7CiAgICB9Cn0=