#include <iostream>
#include <vector>
#include <iomanip>
typedef std::vector<std::vector<int>> matrix;
void split( const matrix& src, matrix& zero, matrix& one )
{
//for( auto& v: src )
for( matrix::const_iterator it=src.begin(); it != src.end(); ++it)
{
const std::vector<int>& v = *it;
if( v[v.size()-1] == 0 ) zero.push_back(v);
else one.push_back(v);
}
}
void print( const matrix& m )
{
for( auto& v: m )
{
for( auto& e: v )
{
std::cout << std::setw(5) << e;
}
std::cout << std::endl;
}
}
int main() {
matrix m = {
{1, 2, 3, 4, 5, 1},
{2, 3, 5, 1, 8, 0},
{7, 5, 6, 1, 8, 1},
{3, 6, 8, 1, 2, 0},
{4, 3, 6, 7, 2, 0},
{4, 3, 6, 8, 1, 1},
{4, 3, 6, 8, 1, 0},
{4, 3, 6, 9, 2, 1} };
matrix zero;
matrix one;
split( m, zero, one );
print( zero );
std::cout << "--------------" << std::endl;
print( one );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aW9tYW5pcD4KCnR5cGVkZWYgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8aW50Pj4gbWF0cml4OwoKdm9pZCBzcGxpdCggY29uc3QgbWF0cml4JiBzcmMsIG1hdHJpeCYgemVybywgbWF0cml4JiBvbmUgKQp7CiAgICAvL2ZvciggYXV0byYgdjogc3JjICkKICAgIGZvciggbWF0cml4Ojpjb25zdF9pdGVyYXRvciBpdD1zcmMuYmVnaW4oKTsgaXQgIT0gc3JjLmVuZCgpOyArK2l0KQogICAgewogICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHYgPSAqaXQ7CiAgICAgICAgaWYoIHZbdi5zaXplKCktMV0gPT0gMCApIHplcm8ucHVzaF9iYWNrKHYpOwogICAgICAgIGVsc2Ugb25lLnB1c2hfYmFjayh2KTsKICAgIH0KfQoKdm9pZCBwcmludCggY29uc3QgbWF0cml4JiBtICkKewogICAgZm9yKCBhdXRvJiB2OiBtICkgICAgCiAgICB7CiAgICAgICAgZm9yKCBhdXRvJiBlOiB2ICkKICAgICAgICB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBzdGQ6OnNldHcoNSkgPDwgZTsKICAgICAgICB9CiAgICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgIH0KfQoKaW50IG1haW4oKSB7CgogICAgbWF0cml4IG0gPSB7IAogICAgezEsIDIsIDMsIDQsIDUsIDF9LAoJezIsIDMsIDUsIDEsIDgsIDB9LAoJezcsIDUsIDYsIDEsIDgsIDF9LAoJezMsIDYsIDgsIDEsIDIsIDB9LAoJezQsIDMsIDYsIDcsIDIsIDB9LAoJezQsIDMsIDYsIDgsIDEsIDF9LAoJezQsIDMsIDYsIDgsIDEsIDB9LAoJezQsIDMsIDYsIDksIDIsIDF9IH07IAoKICAgIG1hdHJpeCB6ZXJvOwogICAgbWF0cml4IG9uZTsKICAgIAogICAgc3BsaXQoIG0sIHplcm8sIG9uZSApOwoKICAgIHByaW50KCB6ZXJvICk7CiAgIAogICAgc3RkOjpjb3V0IDw8ICItLS0tLS0tLS0tLS0tLSIgPDwgc3RkOjplbmRsOwogICAKICAgIHByaW50KCBvbmUgKTsKCglyZXR1cm4gMDsKfQ==