#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool comp(int32_t lhs, int32_t rhs) {
if ((lhs ^ rhs) >= 0) {
return false;
}
else
return lhs > rhs;
}
int main() {
vector<int32_t> input{9, 4, -2, -1, 5, 0, -5, -3, 2};
// sort +ve, then -ve
stable_sort(input.begin(), input.end(), comp);
for (int32_t i : input)
cout << i << " ";
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjb21wKGludDMyX3QgbGhzLCBpbnQzMl90IHJocykgewoJaWYgKChsaHMgXiByaHMpID49IDApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgllbHNlCgkJcmV0dXJuIGxocyA+IHJoczsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50MzJfdD4gaW5wdXR7OSwgNCwgLTIsIC0xLCA1LCAwLCAtNSwgLTMsIDJ9OwogICAgLy8gc29ydCArdmUsIHRoZW4gLXZlCiAgICBzdGFibGVfc29ydChpbnB1dC5iZWdpbigpLCBpbnB1dC5lbmQoKSwgY29tcCk7CiAgICBmb3IgKGludDMyX3QgaSA6IGlucHV0KQogICAgICAgIGNvdXQgPDwgaSA8PCAiICI7CiAgICBjb3V0IDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==