#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <vector>
bool is_pos(int i) { return i > 0; }
int main()
{
int ARRAY[] ={-2,-3,-6,1,2,-8,-7,12,8,9};
int POS_ARRAY[5], NEG_ARRAY[5];
auto p = std::partition(std::begin(ARRAY),
std::end(ARRAY), std::ptr_fun(is_pos));
std::copy(std::begin(ARRAY), p, std::begin(POS_ARRAY));
std::copy(p, std::end(ARRAY), std::begin(NEG_ARRAY));
for(auto i:NEG_ARRAY)
std::cout<<i<<" ";
std::cout<<std::endl;
for(auto i:POS_ARRAY)
std::cout<<i<<" ";
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8dmVjdG9yPgogCmJvb2wgaXNfcG9zKGludCBpKSB7IHJldHVybiBpID4gMDsgfQogCmludCBtYWluKCkKewoKaW50IEFSUkFZW10gPXstMiwtMywtNiwxLDIsLTgsLTcsMTIsOCw5fTsKaW50IFBPU19BUlJBWVs1XSwgTkVHX0FSUkFZWzVdOwphdXRvIHAgPSBzdGQ6OnBhcnRpdGlvbihzdGQ6OmJlZ2luKEFSUkFZKSwgCiAgICAgICAgIHN0ZDo6ZW5kKEFSUkFZKSwgc3RkOjpwdHJfZnVuKGlzX3BvcykpOwoKc3RkOjpjb3B5KHN0ZDo6YmVnaW4oQVJSQVkpLCBwLCBzdGQ6OmJlZ2luKFBPU19BUlJBWSkpOwoKc3RkOjpjb3B5KHAsICBzdGQ6OmVuZChBUlJBWSksIHN0ZDo6YmVnaW4oTkVHX0FSUkFZKSk7Cgpmb3IoYXV0byBpOk5FR19BUlJBWSkKIHN0ZDo6Y291dDw8aTw8IiAiOwogCiBzdGQ6OmNvdXQ8PHN0ZDo6ZW5kbDsKIAogZm9yKGF1dG8gaTpQT1NfQVJSQVkpCiBzdGQ6OmNvdXQ8PGk8PCIgIjsKfQ==