0129 - Sortare

De la Universitas MediaWiki
Versiunea din 7 mai 2023 07:14, autor: Ardelean Alexandru (discuție | contribuții) (Pagină nouă: ==Cerința== Se dă un vector cu <code>n</code> elemente numere întregi. Să se ordoneze descrescător elementele vectorului. ==Date de intrare== Fişierul de intrare <code>sortare.in</code> conţine pe prima linie numărul <code>n</code> si pe a doua linie <code>n</code> numere întregi separate prin spaţii. ==Date de ieșire== Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." Pe următoarea linie se vor afișa cele <code>n</code> eleme...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerința

Se dă un vector cu n elemente numere întregi.

Să se ordoneze descrescător elementele vectorului.

Date de intrare

Fişierul de intrare sortare.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

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

  • 0 < n ≤ 100
  • valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât 230

Exemplu 1

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

Exemplu 2

Intrare
-2
8 2 9 4 5 7
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0129 Sortare
def conditii(n, numere):
    return len(numere) == n and \
        0 < n <= 100 and \
        all(abs(nr) < 2**30 for nr in numere)


def sortare(numere):
    # sorted() este o funcție built-in care sortează o listă dată
    # reverse=True înseamnă că lista va fi sortată descrescător
    rezultat = sorted(numere, 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.")
        sortare(numere)