2594 - Partionare: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 47: Line 47:
     lista = [int(num) for num in input("Introduceți șirul de numere: ").split()]
     lista = [int(num) for num in input("Introduceți șirul de numere: ").split()]


     # verificăm restricțiilor
     # verificăm restricțiile
     if n < 1 or n > 1000 or any(num < -2147483648 or num > 2147483647 for num in lista):
     if n < 1 or n > 1000 or any(num < -2147483648 or num > 2147483647 for num in lista):
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")

Latest revision as of 20:59, 23 April 2023

Cerința[edit | edit source]

Se citește un număr natural n și un șir de n numere întregi. Să se aranjeze elementele astfel încât în prima parte a șirului să fie valorile pare în ordine crescătoare, iar în partea a doua valorile impare, de asemenea în ordine crescătoare.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n și apoi cele n elemente ale șirului.

Date de ieșire[edit | edit source]

Programul afișează pe ecran elementele șirului după prelucrare cu spații intre ele.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 1000
  • cele n numere pot fi reprezentate pe 32 de biți cu semn.

Exemplul 1[edit | edit source]

Intrare
10
5 4 3 2 1 6 7 8 9 18
Ieșire
Datele de intrare corespund restricțiilor impuse.
2 4 6 8 18 1 3 5 7 9

Exemplul 2[edit | edit source]

Intrare
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 2594 - Partitionare

def sort_pare_impare(lista):

   pare = []  # creăm o listă goală, pentru numerele pare
   impare = []  # a doua listă goală, pentru numerele impare
   # adăugăm fiecare număr în lista corespunzătoare
   for num in lista:
       if num % 2 == 0:
           pare.append(num)
       else:
           impare.append(num)
   pare.sort()  # sortăm lista de numere pare
   impare.sort()  # la fel lista de numere impare
   rezultat = pare + impare  # concatenăm cele două liste sortate
   return rezultat


if __name__ == "__main__":

   n = int(input("Introduceți numărul de elemente: "))
   lista = [int(num) for num in input("Introduceți șirul de numere: ").split()]
   # verificăm restricțiile
   if n < 1 or n > 1000 or any(num < -2147483648 or num > 2147483647 for num in lista):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       sorted_list = sort_pare_impare(lista)  # apelăm funcția de sortare
       print(" ".join(str(num) for num in sorted_list))  # afișăm lista sortată 


</syntaxhighlight>