1399 - Sortare in Trepte

From Bitnami MediaWiki
Revision as of 17:15, 24 October 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == 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. =...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>