#include <algorithm>
#include <vector>
#include <iostream>
#include <iterator>
#include <numeric>


int main()
{
    std::vector<int> array(100);
    std::iota(array.begin(), array.end(), 0);
    std::vector<int> even, odd;
    std::partition_copy(array.begin(), array.end(),
                        std::back_inserter(even),
                        std::back_inserter(odd),
                        [](int x){return x%2 == 0;});
    std::copy(even.begin(), even.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::copy(odd.begin(), odd.end(), std::ostream_iterator<int>(std::cout, " "));
}