//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
#include <iostream>
#include <array>
int main()
{
std::array<int, 10> mas = { 1, 5, -4, 9, -6, -2, 7, 8, -5, 0 };
auto it = std::partition(mas.begin(), mas.end(), [](const int& i) { return i < 0; });
std::sort(mas.begin(), it, [](const int& x, const int& y) { return x > y; });
std::sort(it, mas.end(), [](const int& x, const int& y) { return x > y; });
std::copy(mas.begin(), mas.end(), std::ostream_iterator<int>(std::cout, " "));
}
#include <iomanip>
using namespace std;
int main() {
int n,k;
cout<<"n = "; cin>>n;
int a[n],b[n];
srand(time(NULL));
// запись в массив
for (int i=0; i<n; i++) {
a[i]=15-rand()%30; cout<<a[i]<<" ";
}
cout<<endl;
// сортировка массива по убыванию
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[j]>a[i]) swap(a[i],a[j]);
// поиск первого отрицательного
k=0;
while (a[k]>=0) k++;
// запись положительных по убыванию
for (int i=0; i<k; i++) b[i]=a[i];
// запись отрицательных по возрастанию
for (int i=k; i<n; i++) b[i]=a[n-i+k-1];
// вывод массива b
for (int i=0; i<n; i++) cout<<b[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
n = 15
-6 -9 -7 12 7 7 -6 6 11 -4 1 10 9 -8 -1
12 11 10 9 7 7 6 1 -9 -8 -7 -6 -6 -4 -1