1191 - Arhitectura

De la Universitas MediaWiki

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()