1191 - Arhitectura

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

Primăria dorește să realizeze un proiect de sistematizare a orașului și pentru aceasta îl angajează pe arhitectul Gigel. Orașul constă în n clădiri; pentru fiecare se cunoaște înălțimea, iar Gigel trebuie să ordoneze descrescător aceste înălțimi.

Date de intrare

Programul citește de la tastatură prima linie numărul n, apoi n numere naturale separate prin spații, reprezentând înălțimile celor n clădiri.

Date de ieșire

Programul va afișa pe ecran n numere naturale, separate prin câte un spațiu, reprezentând înălțimile clădirilor, după ordonare.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • înălțimile clădirilor vor fi mai mici decât 1.000.000.000

Exemplul 1

Intrare
5
1 2 7 3 6
Ieșire
Datele de intrare corespund restricțiilor impuse.
7 6 3 2 1

Exemplul 2

Intrare
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#1191 - Arhitectura
def arhitectura():
    # citim numărul de înălțimi
    n = int(input())
    # citim lista de înălțimi
    inaltimi = list(map(int, input().split()))

    # verificăm restricțiile
    if n < 1 or n > 1000 or any(h < 1 or h >= 1000000000 for h in inaltimi):
        print("Datele de intrare nu corespund restricțiilor impuse.")
    else:
        print("Datele de intrare corespund restricțiilor impuse.")
        # sortăm lista de înălțimi, în ordine descrescătoare
        inaltimi_ord = ordonare_descrescatoare(inaltimi)
        # afișăm lista sortată de înălțimi
        print(*inaltimi_ord)

def ordonare_descrescatoare(lista):
    # sortează lista în ordine descrescătoare 
    return sorted(lista, reverse=True)

if __name__ == '__main__':
    # apelăm funcția arhitectura()
    arhitectura()