1191 - Arhitectura: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
Line 24: Line 24:
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
#1191 - Arhitectura
#1191 - Arhitectura
def main():
def arhitectura():
     # citim numărul de înălțimi
     # citim numărul de înălțimi
     n = int(input())
     n = int(input())
     # citim lista de înălțimi
     # citim lista de înălțimi
     inaltimi = list(map(int, input().split()))
     inaltimi = list(map(int, input().split()))
     # verificăm restricțiile
     # verificăm restricțiile
     if n < 1 or n > 1000 or any(h < 1 or h >= 1000000000 for h in inaltimi):
     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.")
         print("Datele de intrare nu corespund restricțiilor impuse.")
     else:
     else:
       
         print("Datele de intrare corespund restricțiilor impuse.")
         print("Datele de intrare corespund restricțiilor impuse.")
         # sortăm lista de înălțimi, în ordine descrescătoare
         # sortăm lista de înălțimi, în ordine descrescătoare
Line 46: Line 45:


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




</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 10:19, 21 May 2023

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>