#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void customSort(vector<int>& arr) {
vector<int> positive, zeros, negative;
for (int num : arr) {
if (num > 0)
positive.push_back(num);
else if (num == 0)
zeros.push_back(num);
else
negative.push_back(num);
}
sort(positive.begin(), positive.end(), greater<int>());
sort(negative.begin(), negative.end());
arr.clear();
arr.insert(arr.end(), positive.begin(), positive.end());
arr.insert(arr.end(), zeros.begin(), zeros.end());
arr.insert(arr.end(), negative.begin(), negative.end());
}
void printArray(const vector<int>& arr) {
for (int num : arr)
cout << num << " ";
cout << endl;
}
int main() {
vector<int> arr = {3, -1, 0, 5, -2, 7, 4, -3};
customSort(arr);
cout << "Mang da sap xep: ";
printArray(arr);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBjdXN0b21Tb3J0KHZlY3RvcjxpbnQ+JiBhcnIpIHsKICAgIHZlY3RvcjxpbnQ+IHBvc2l0aXZlLCB6ZXJvcywgbmVnYXRpdmU7CgogICAgCiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBpZiAobnVtID4gMCkKICAgICAgICAgICAgcG9zaXRpdmUucHVzaF9iYWNrKG51bSk7CiAgICAgICAgZWxzZSBpZiAobnVtID09IDApCiAgICAgICAgICAgIHplcm9zLnB1c2hfYmFjayhudW0pOwogICAgICAgIGVsc2UKICAgICAgICAgICAgbmVnYXRpdmUucHVzaF9iYWNrKG51bSk7CiAgICB9CgogICAgCiAgICBzb3J0KHBvc2l0aXZlLmJlZ2luKCksIHBvc2l0aXZlLmVuZCgpLCBncmVhdGVyPGludD4oKSk7IAogICAgc29ydChuZWdhdGl2ZS5iZWdpbigpLCBuZWdhdGl2ZS5lbmQoKSk7ICAgICAgICAgICAgICAgICAKCiAgICAKICAgIGFyci5jbGVhcigpOwogICAgYXJyLmluc2VydChhcnIuZW5kKCksIHBvc2l0aXZlLmJlZ2luKCksIHBvc2l0aXZlLmVuZCgpKTsKICAgIGFyci5pbnNlcnQoYXJyLmVuZCgpLCB6ZXJvcy5iZWdpbigpLCB6ZXJvcy5lbmQoKSk7CiAgICBhcnIuaW5zZXJ0KGFyci5lbmQoKSwgbmVnYXRpdmUuYmVnaW4oKSwgbmVnYXRpdmUuZW5kKCkpOwp9Cgp2b2lkIHByaW50QXJyYXkoY29uc3QgdmVjdG9yPGludD4mIGFycikgewogICAgZm9yIChpbnQgbnVtIDogYXJyKQogICAgICAgIGNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhcnIgPSB7MywgLTEsIDAsIDUsIC0yLCA3LCA0LCAtM307CiAgICBjdXN0b21Tb3J0KGFycik7CiAgICBjb3V0IDw8ICJNYW5nIGRhIHNhcCB4ZXA6ICI7CiAgICBwcmludEFycmF5KGFycik7CiAgICByZXR1cm4gMDsKfQo=