#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, 0, 4, -3};
    customSort(arr);
    cout << "Mang da sap xep: ";
    printArray(arr);
    return 0;
}
