1191 - Arhitectura

From Bitnami MediaWiki

Cerința[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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

Exemplul 1[edit | edit source]

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

Exemplul 2[edit | edit source]

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

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

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


</syntaxhighlight>