0086 - Half Sort
Cerința[edit | edit source]
Se dă un vector cu n
elemente numere întregi, n
fiind număr par.
Să se ordoneze crescător elementele din prima jumătate a vectorului și descrescător elementele din a doua jumătate.
Date de intrare[edit | edit source]
Fişierul de intrare halfsort.in
conţine pe prima linie numărul n
si pe a doua linie n
numere întregi separate prin spaţii.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următoarea linie se vor afișa cele n
elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 100
,n
număr par
- valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât
1.000.000.000
Exemplu 1[edit | edit source]
- Intrare
- 6
- 8 2 9 4 5 7
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 2 8 9 7 5 4
Exemplu 2[edit | edit source]
- Intrare
- -2
- 8 2 9 4 5 7
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0086 Half Sort
def conditii(n, numere):
return len(numere) == n and \ 1 <= n <= 100 and \ n % 2 == 0 and \ all(abs(nr) < 1_000_000_000 for nr in numere)
def half_sort(numere):
# Secționăm și sortăm crescător prima jumătate a listei: numere[ :len(numere)//2] # Secționăm și sortăm descrescător a doua jumătate a listei: numere[len(numere)//2: ] # Folosim operatorul + pentru a concatena elementele celor două liste rezultat = sorted(numere[:len(numere)//2], reverse=False) + \ sorted(numere[len(numere)//2:], reverse=True) print(" ".join([str(x) for x in rezultat]))
if __name__ == "__main__":
n = int(input()) numere = [int(x) for x in input().split()] if not conditii(n, numere): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") half_sort(numere)
</syntaxhighlight>