2594 - Partionare
Cerința
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
Programul citește de la tastatură numărul n și apoi cele n elemente ale șirului.
Date de ieșire
Programul afișează pe ecran elementele șirului după prelucrare cu spații intre ele.
Restricții și precizări
- 1 ≤ n ≤ 1000
- cele n numere pot fi reprezentate pe 32 de biți cu semn.
Exemplul 1
- 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
- Intrare
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="">
- 2594 - Partionare
def sort_pare_impare(n, lista):
pare = [] impare = []
for num in lista: if num % 2 == 0: pare.append(num) else: impare.append(num)
pare.sort() impare.sort()
rezultat = pare + impare
print(" ".join(str(num) for num in rezultat))
if __name__ == "__main__":
n = int(input("Introduceți numărul de elemente: ")) if n < 1 or n > 1000: print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.")
lista = [int(num) for num in input("Introduceți șirul de numere: ").split()]
sort_pare_impare(n, lista)
</syntaxhighlight>