0129 - Sortare

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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)