# PBinfo #1399 – sortare_in_trepte – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se citește un șir cu n numere întregi. Să se rearanjeze elementele șirului astfel ca numerele negative să fie ordonate descrescător. apoi să urmeze elementele nule, urmate de numerele pozitive ordonate descrescător.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran pe prima linie șirul ordonat conform cerinței.

Restricții și precizări

1 ≤ n ≤ 1000
-10.000 ≤ elementele șirului ≤ 10.000

Exemplu:
Intrare

7
1 -41 8 -3 4 8 0
Ieșire

-3 -41 0 8 8 4 1

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main()
{
    int a[100000],n,i,j,aux;
    cin>>n;
    for(i=1;i<=n;++i)
        cin>>a[i];
    for (i=1;i<n;++i)
        for(j=i+1;j<=n;++j)
            if ((a[i]>=0 and a[j]<0) or
                (a[i]>0 and a[j]==0) or
                (a[i]*a[j]>0 and a[i]<a[j]))
            {
                aux=a[i];
                a[i]=a[j];
                a[j]=aux;
            }
    for (i=1;i<=n;++i)
        cout<<a[i]<<" ";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1399)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1399/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1399/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
