#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void sortPositiveDesc(vector<int>& arr) {
vector<int> positive;
for (int num : arr) {
if (num > 0)
positive.push_back(num);
}
sort(positive.begin(), positive.end(), greater<int>());
int posIndex = 0;
for (int& num : arr) {
if (num > 0)
num = positive[posIndex++];
}
}
void printArray(const vector<int>& arr) {
for (int num : arr)
cout << num << " ";
cout << endl;
}
int main() {
vector<int> arr = {3, -1, 5, 0, -2, 7, 4, -3};
sortPositiveDesc(arr);
cout << "Mang sau khi sap xep: ";
printArray(arr);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzb3J0UG9zaXRpdmVEZXNjKHZlY3RvcjxpbnQ+JiBhcnIpIHsKICAgIHZlY3RvcjxpbnQ+IHBvc2l0aXZlOwoKICAgCiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBpZiAobnVtID4gMCkKICAgICAgICAgICAgcG9zaXRpdmUucHVzaF9iYWNrKG51bSk7CiAgICB9CgogICAKICAgIHNvcnQocG9zaXRpdmUuYmVnaW4oKSwgcG9zaXRpdmUuZW5kKCksIGdyZWF0ZXI8aW50PigpKTsKCiAKICAgIGludCBwb3NJbmRleCA9IDA7CiAgICBmb3IgKGludCYgbnVtIDogYXJyKSB7CiAgICAgICAgaWYgKG51bSA+IDApCiAgICAgICAgICAgIG51bSA9IHBvc2l0aXZlW3Bvc0luZGV4KytdOwogICAgfQp9Cgp2b2lkIHByaW50QXJyYXkoY29uc3QgdmVjdG9yPGludD4mIGFycikgewogICAgZm9yIChpbnQgbnVtIDogYXJyKQogICAgICAgIGNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8aW50PiBhcnIgPSB7MywgLTEsIDUsIDAsIC0yLCA3LCA0LCAtM307CiAgICBzb3J0UG9zaXRpdmVEZXNjKGFycik7CiAgICBjb3V0IDw8ICJNYW5nIHNhdSBraGkgc2FwIHhlcDogIjsKICAgIHByaW50QXJyYXkoYXJyKTsKICAgIHJldHVybiAwOwp9Cg==