2594 - Partionare
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">
- 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>