1399 - Sortare in Trepte
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
- -10000 ⩽ elementele șirului ⩽ 10000
Exemplu
- Intare
- 7
- 1 -41 8 -3 4 8 0
- Ieșire
- -3 -41 0 8 8 4 1
Rezolvare
<syntaxhighlight lang="python" line> if __name__ == "__main__":
# Citim numărul de elemente din șir n = int(input()) # Citim elementele șirului sir = list(map(int, input().split())) # Separam numerele în funcție de semn negative = [x for x in sir if x < 0] zero = [x for x in sir if x == 0] pozitive = [x for x in sir if x > 0] # Sortăm fiecare listă în mod corespunzător negative.sort(reverse=True) pozitive.sort(reverse=True) # Concatenăm listele pentru a obține șirul final sir_final = negative + zero + pozitive # Afișăm șirul sortat print(' '.join(map(str, sir_final)))
</syntaxhighlight>